26

Re: добавление записей в бд через форму

$predmets="select * from predmets";
$result=mysql_query($predmets);
echo "<SELECT NAME='Predmets'>";
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
$predmet=$row["Nazv"];
  echo "<option value='$predmet'>$predmet</option>";
}
echo"</SELECT>"; //вот формируется список, в котором содержатся предметы

$pr="Select * from predmets where Nazv='" . $_REQUEST['Predmets'] . "'";
$rest=mysql_query($pr);
$typ=mysql_fetch_assoc($rest);
$type_pred=$typ['type_pred'];//здесь я в переменную помещаю значение "тип предмета" у предмета, который был выбран из списка//
$id_pred=$typ['Id_pred'];//здесь идентификатор предмета, который был выбран из списка (можно и без него)//

и теперь должен исполняться скрипт: выбираем предмет из списка и сразу же значение переменной $type_pred должно отразиться на странице с помощью объекта label или в текстовом поле (text)...ну вот должно быть что-то в этом роде..не знаю насколько это возможно

27

Re: добавление записей в бд через форму

Попробуйте так.

<script>
function L_onchange(oOption) {
  document.getElementById("label").innerHTML = assoc[oOption.value];
}
</script>
<?php

$assoc = array();
$predmets="select * from predmets";
$result=mysql_query($predmets);
echo "<SELECT NAME='Predmets' onchange='L_onchange(this);'>";
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
  $predmet=$row["Nazv"];
  echo "<option value='" . $row['Id_pred'] . "'>$predmet</option>";
  $assoc[] = $row['Id_pred'] . ':"' . addslashes($row['type_pred']) . '"'
}
echo"</SELECT>\n";
echo '<div id="label"></div>' . "\n";

echo '<script>' . "\n";
echo 'var assoc = {' . implode(',', $assoc) . '};' . "\n";
echo '</script>' . "\n";

?>

28

Re: добавление записей в бд через форму

огромное спасибо, все заработало!

29

Re: добавление записей в бд через форму

подскажите пожалуйста, где я ошибся...нужно найти последнее значение поля Fio..пишу следующий код:

$st="select last(Fio) from studs";
$r=mysql_query($st);
if (!$r)
{
  die ("Невозможно исполнить запрос к базе данных:<br/>".mysql_error());
}
$z = mysql_fetch_assoc($r);
$std=$z['Fio'];

30

Re: добавление записей в бд через форму

VitoS сказал:

нужно найти последнее значение поля Fio

В MySQL нет функции last(). Для поиска последнего значения необходимо задать поле сортировки и лимит. Получится примерно так:

$st="select `Fio` from `studs` ORDER BY `time` DESC LIMIT 1";

Если необходимо найти идентификатор последней (только что) добавленной строки, то в PHP есть функция mysql_insert_id().

31 (изменено: VitoS, 2011-04-06 20:30:35)

Re: добавление записей в бд через форму

подскажите пожалуйста,как можно найти возраст человека...у меня в базе есть поле data_r,которое хранит дату рождения студента...и нужно посчитать возраст на сегодняшний день...как это можно реализовать?

32

Re: добавление записей в бд через форму

VitoS сказал:

как можно найти возраст человека.

Вставьте в запрос вычисление от текущего года. Это будет работать, если поле data_r имеет тип времени или даты.

SELECT ... , YEAR(NOW()) - YEAR(`data_r`) AS `old` FROM ...

33

Re: добавление записей в бд через форму

спасибо ,сработало)

34

Re: добавление записей в бд через форму

подскажите пожалуйста, как можно сделать, чтобы при нажатии на ссылку всплавало небольшое окно определенного размера с информацией, котоое можно было закрыть?...ну то есть вот у меня есть ссылка "контактная информация" и при нажатии на нее ,должно открыться окошко с информацией типа:номер телефона,  почта и пр...находил варианты ,но они не работали(...это делается с помощью javascript насколько я понял...

35

Re: добавление записей в бд через форму

VitoS сказал:

как можно сделать, чтобы при нажатии на ссылку всплавало небольшое окно определенного размера с информацией, котоое можно было закрыть?

<a href="javascript:window.open('small.html', null, 'width=600, height=600, status=no');">Открыть</a>

36

Re: добавление записей в бд через форму

почему-то не открывается окно, если эта ссылка заключена в теги <?php... ?>...то есть вот так  echo "<a href='javascript:window.open('stud_add.php', null, 'width=600, height=600, status=no');'>Открыть</a>"; почему-то не срабатывает, подскажите пожалуйста почему?

37

Re: добавление записей в бд через форму

Не забывайте экранировать кавычки, где это необходимо.
echo "<a href=\"javascript:window.open('stud_add.php', null, 'width=600, height=600, status=no');\">Открыть</a>";

38

Re: добавление записей в бд через форму

спасибо...а как сделать, чтобы новая страница открывалась, но при этом моя старая страница не пропадала? такое вообще возможно?...просто вот я нажимаю на ссылку ,открывается новая страница, а страница ,с которой идет ссылка пропадает..

39

Re: добавление записей в бд через форму

Попробуйте через функцию.

<script>
function open_window() {
  window.open('stud_add.php', null, 'width=600, height=600, status=no');
}
</script>
<?php
echo "<a href=\"javascript:open_window();\">Открыть</a>";
?>

40

Re: добавление записей в бд через форму

спасибо, сработало

41

Re: добавление записей в бд через форму

подскажите пожалуйста, как можно вывести сообщение об ошибке..ну вот у меня есть текстовые поля на странице..и если какое-то из них не заполнено, то выводить сообщение, что "не все поля заполены"..
$sex = $_POST['Fio'];
$sex1 = $_POST['stud_bil'];
$sex2= $_POST['data_r'];
$sex3= $_POST['gorod'];
$sex4= $_POST['mesto_proz'];
$sex5= $_POST['nom_shk'];
$sex6= $_POST['phone'];
$sex7= $_POST['isq'];
$sex8= $_POST['email'];//  в этих переменных у меня значения текстовых полей..

далее нужно чтобы выводилось сообщение, если какое-нибудь из них пусто...
if ($sex=='' or $sex1=='' or $sex2=='' or $sex3=='' or $sex4=='' or $sex5=='' or $sex6=='' or $sex7=='' or $sex8=='')
..а дальше немного не понимаю как вывести это сообщение...alert не срабатывет..как можно вывести это сообщение?

42

Re: добавление записей в бд через форму

VitoS сказал:

как можно вывести сообщение об ошибке

Я бы посоветовал сделать проверку в виде цикла.

$error = false;
$test = array('Fio', 'stud_bil', 'data_r'); // Создается архив содержащий ключи всех необходимых POST переменных.
foreach ($test as $key) {
  if (!isset($_POST[$key]) || strlen($_POST[$key]) <= 0) {
    $error = 'Заполните поля';
  }
}
// В подходящем месте выводим ошибку.
if ($error) {
  print '<div style="color: red;">' . $error . '</div>';
} else {
// Здесь происходит обработка полученных данных.
}

Вывести уведомление о незаполненных полях можно в любом подходящем месте на странице.

43

Re: добавление записей в бд через форму

спасибо, все работает!

44

Re: добавление записей в бд через форму

у меня возник еще один вопрос...допустим есть у меня текстовое поле, в которое я пишу номер телефона студента...но также я должен учесть 2 варианта: либо студент не сказал номер ,либо у него его нет...я думаю реализовать это с помощью чекбоксов...и теперь вобственно вопрос...можно ли сделать так, что щелкнув например на 1й чекбокс в текстовое поле писалось имя этого чекбокса...ну вот у меня есть следующее:

<input name="phone" type="text" value="">
    Телефон';echo '<input type="checkbox" name="checkme1" value="0">Нет';echo '<input type="checkbox" name="checkme1" value="1">Не сказал<br><br>';

если я жму на чекбокс с именем "нет", то в текстовое поле заносится "нет"...это можно реализовать? и это делается с помощью javascript или можно в php?

45

Re: добавление записей в бд через форму

VitoS сказал:

му на чекбокс с именем "нет", то в текстовое поле заносится "нет"

Необходимо у поля phone добавить идентификатор и обработать событие onclick на галочке.
<input name="phone" type="text" value="" id="phone">
<input type="checkbox" name="checkme1" value="0" onclick="javascript:document.getElementById('phone').value='Нет';">Нет

Если есть вторая галочка, то она должна иметь другое имя (name), иначе две галочки с одним именем будут накладывать значения друг на друга.
<input type="checkbox" name="checkme1" value="1">Не сказал

46

Re: добавление записей в бд через форму

echo' <input name="phone" type="text" value="" id="phone">Телефон';
echo '<input type="checkbox" name="checkme" value="0" onclick="javascript:document.getElementById("phone").value="Нет";">Нет';echo '<input type="checkbox" name="checkme1" value="1" onclick="javascript:document.getElementById("phone").value="Нет";">Не сказал;'

сделал так ,но че-то не работает, не заносится в текстовое поле...

47

Re: добавление записей в бд через форму

VitoS сказал:

сделал так ,но че-то не работает

Указал ошибку в коде. Осторожнее с кавычками.

48

Re: добавление записей в бд через форму

все также..не заносится...вроде все написано правильно..

49

Re: добавление записей в бд через форму

VitoS сказал:

все также..не заносится...вроде все написано правильно..

Как написано? Покажите что вы заменили. Я не исправил ошибку, а только указал на конфликтующие кавычки, исправьте их сами.

50 (изменено: VitoS, 2011-04-14 17:29:43)

Re: добавление записей в бд через форму

echo '<input type="checkbox" name="checkme" value="0" onclick="javascript:document.getElementById("phone").value="Нет";">Нет';...я делаю так..это единственный вариант когда у меня не выдается ошибок, но не работает правда...я менял кавычки-выдаются ошибки...а из-за чего конфликтуют эти кавычки?