У меня есть форма, где пользователь выбирает поле 1, а затем выбирает поле 2, который заполняется по своему выбору на поле 1.изменение поля формы, чтобы после того, как выбран после PHP
Проблема заключается в том, что после того, как они находятся на шаг 2, поле 1 не отображает их выбор (даже если выбор по-прежнему переносится в поле скрытой формы). Я не уверен, как это сделать, когда вы устанавливаете форму ниже. Мне нужно выяснить, как ее пометить выбранный вариант.
функции выбора в поле 1 и 2 ниже
function GetCategoryList(){
$push .= "<form action=\"main.php\" method=POST>";
$push .= "<select name=cat>";
$result = mysql_query("SELECT * FROM `cats`") or trigger_error(mysql_error());
while($row = mysql_fetch_array($result)){
foreach($row AS $key => $value) { $row[$key] = stripslashes($value); }
$id = $row['id'];
$cat = $row['cat'];
$push .= "<option value=$id>$cat</option>";
}
$push .= "</select>";
$push .= "<input type=submit name=button id=button value=\"Set Category\"></form>";
return $push;
}
function GetSubCategoryList($cat){
$push .= "<form action=\"main.php\" method=POST>";
$push .= "<select name=subcat>";
$result = mysql_query("SELECT * FROM `subcats` WHERE cat = '$cat'") or trigger_error(mysql_error());
while($row = mysql_fetch_array($result)){
foreach($row AS $key => $value) { $row[$key] = stripslashes($value); }
$id = $row['id'];
$subcat = $row['subcat'];
$cat = $row['cat'];
$push .= "<option value=$id>$subcat</option>";
}
$push .= "</select>";
$push .= "<input type=hidden name=cat value=$cat>";
$push .= "<input type=submit name=button id=button value=\"Set Sub-Category\"></form>";
return $push;
}
Это код на самой странице
Category
<? echo GetCategoryList(); ?>
<br />
SubCategory
<? if(isset($_POST['cat'])){ echo GetSubCategoryList($_POST['cat']); } else { echo "<em>select a category</em>"; } ?>
<br />
работает как шарм, спасибо! Кроме того, если вы не возражаете, не могли бы вы объяснить, как вы написали эхо функции внизу, кажется более чистым, но я не понимаю, что именно происходит (я понимаю результат, а не специфику) – mrpatg
Вы, вероятно, x? y: z' часть. Это тернарный оператор, http://docs.php.net/ternary. Мне просто нравится избегать создания переменных «один раз», хотя иногда их можно читать с ними. Если задано '_POST [cat]', значение передается функции, в противном случае передается NULL. – VolkerK