Добрый день. У меня такой вопрос, как мне сохранить в переменную id из таблицы, которому соответствует выбранное значение из выпадающего списка? Пример ниже PHP: <select name="Client">'; require_once("config.php"); mysql_connect($dbhost,$dbuser,$dbpasswd); mysql_select_db($dbname); $res = mysql_query('SELECT cl_id, name FROM tab_clients') or die(mysql_error()); while($arr=mysql_fetch_array($res)){ printf('<option value="%s">%s</option>',htmlspecialchars($arr['cl_id']),htmlspecialchars($arr['name'])); }; echo '</select> Т.е у меня для списка значения отбираются из таблици, как видно отсюда htmlspecialchars($arr['cl_id']),htmlspecialchars($arr['name']) отбираются поля id и name. ИД в списке я конечно не вижу, но мне хотелось бы сохранить это значение в переменную и затем передать на другой пхп сценарий. Т.е я выбрал на сайте из списка что-то, и этого что-то ид сохраняется в переменную и по нажатию кнопки "сохранить" отправляется на другой сценарий. Заранее спасибо. Подскажите , как реализовать.
HTML: <form action="next.php" method="get"> <select name="option"> <option value="1">M</option> <option value="2">W</option> </select> <input type="submit"> </form> next.php PHP: $option = isset($_GET['option']) ? $_GET['option'] : 1;
Т.е. вместо 1 поставить передваемый ид? Не могли бы подсказать каким образом ? На моем примере имеется <select name="position">'; require_once("config.php"); mysql_connect($dbhost,$dbuser,$dbpasswd); mysql_select_db($dbname); $res = mysql_query('SELECT pos_id, Name FROM tab_positions') or die(mysql_error()); while($arr=mysql_fetch_array($res)){ echo '<option value="'.$arr['pos_id'].'" selected="selected">'.$arr['Name'].'</option>'; }; echo '</select> На до передать на другой сценарий выбранный pos_id.
Люди добрые плиз, отзовитесь . Помогите с решением. Как мне получить это ид в другом пхп сценарии? Если с помощью сессий , то это примерно так должно выглядеть : PHP: session_start(); $_SESSION['id'] = $arr['pos_id']; <select name="position">'; require_once("config.php"); mysql_connect($dbhost,$dbuser,$dbpasswd); mysql_select_db($dbname); $res = mysql_query('SELECT pos_id, Name FROM tab_positions') or die(mysql_error()); while($arr=mysql_fetch_array($res)){ echo '<option value="'.$arr['pos_id'].'" selected="selected">'.$arr['Name'].'</option>'; }; echo '</select> Т.е. если сесси , то я правильно подаю переменную session_start(); $_SESSION['id'] = $arr['pos_id']; ? И потом например в другом сценарии next.php я смогу использовать значение этой переменной сессии.Предположем передать её другой переменной : PHP: $test_id = $_SESSION['id']; if($test_id == 1) { ......... } Это всё верно, или как-то по другому?
from.php PHP: <?php require_once("config.php"); mysql_connect($dbhost,$dbuser,$dbpasswd); mysql_select_db($dbname); $res = mysql_query('SELECT `pos_id`, `name` FROM tab_positions') or die(mysql_error()); ?> <html> <head><title>FROM</title></head> <body> <form method="post" action="to.php"> <select name="position"> <?php while($arr=mysql_fetch_array($res)){ echo '<option value="'.$arr['pos_id'].'">'.$arr['name'].'</option>'; }; ?> </select> <input type="submit"> </form> </body> </html> to.php PHP: <?php echo 'SELECTED POSITION - '.$_POST['position']; ?> Please, note that I changed your sql request - I've enclosed fields' names with `. It's required if your field name is the same as sql reserved word, like NAME
Добрый день! Подскажите, как вы решили свою проблему? Сейчас возник такой вопрос, только я совсем новичок в этом деле
на этом примере можно? тоже самое, только мои значения. Суть вопроса - надо для записи в тбл взять из списка name и соответствующий ему id. (как и здесь в запросе берется id, name). По аналогии с рекордсетом - выбираю name и сразу известен id и все остальные поля.
PHP: <select name="position"> <?php while($arr=mysql_fetch_array($res)){ echo '<option value="'.$arr['pos_id'].'">'.$arr['name'].'</option>'; }; ?> </select>
И как потом достать id и name одновременно? По селекту я достану что-то одно --- Добавлено --- На сколько я понимаю
Я потом $_post от имени селекта делаю в другом файле,но туда берётся же только что укажешь,либо id, либо name
Можно мне уточнить,для id должна быть такая же строчка ещё? --- Добавлено --- И конечно,спасибо огромнейшее,нигде не могла найти ответ♀️
@vicky ну вот один из множества способов: HTML: <form method="post" action="test.php"> <select name="test"> <option value="1">Пункт 1</option> <option value="2">Пункт 2</option> <option value="3">Пункт 3</option> <option value="4">Пункт 4</option> </select> <p><input type="text" size="30" name="name"></p> <p><input type="submit"> </p> </form> <script> var form = document.querySelector('form'), select = form.querySelector('select'); select.addEventListener("change", function() { var name = this.querySelector('option:checked').text; input = form.querySelector('input[type="text"]'); input.value = name; }) </script>
Вот не пойму, я же только учусь, отнеситесь с понимаем). И как теперь узнать эти значения? Т.е.,например, echo ....?
в файле куда отправляет форма (в данном случае test.php) напишите: PHP: if(isset($_POST['name'])){ echo $_POST['test']; // в примере select name = test echo $_POST['name']; }
Спасибо) Вы пока не отключайтесь, я на своем примере буду пробовать, вдруг опять что приключится --- Добавлено --- <form method="post" action="test.php"> <?php include ("db.php"); $query="SELECT * FROM `SprExp`"; $mysqli->query("SET NAMES 'cp1251'"); $result=$mysqli->query($query)or die ('error database'); if (mysqli_num_rows($result)<=0) {echo ("«записей не обнаружено");} else { echo "<select name=type_pr >"; while ($myrow=mysqli_fetch_assoc($result)){ echo "<option value=\"$myrow[ID_Exp]\">$myrow[Name]</option>\n"; } echo "</select>"; } ?> <br><input type="submit" name="submit" value="Oтправить" <br> </form> Подскажите, как в моем случае это же сделать? Мне надо чтобы только список и кнопка была. Или надо делать невидимое поле по типу 'text'? Может есть способ проще?) Как вы писали, через Append
да , невидимое поле PHP: <?php include ("db.php"); $query="SELECT * FROM `SprExp`"; $mysqli->query("SET NAMES 'cp1251'"); $result=$mysqli->query($query)or die ('error database'); $options = ''; if (mysqli_num_rows($result) === 0){ echo ("«записей не обнаружено"); }else { while ($myrow=mysqli_fetch_assoc($result)){ $options .= '<option value="'.$myrow['ID_Exp'].'">'.$myrow['Name'].'</option>'; } } ?> <form method="post" action="test.php"> <select name="type_pr"> <?=$options;?> </select> <input type="text" name="name" hidden> <br> <input type="submit" name="submit" value="Oтправить" > <br> </form>