我非常坚持这个代码,我真的不明白为什么它不应该工作,我不知道我之前运行的一些javascript代码是否在干扰?
仅显示代码的相关部分
选择另一个下拉列表时,第一部分包含javascript更新页面,并且位于我正在努力解决的代码之前: `
<script type="text/JavaScript">
function changeDropDown(){
var elLocation = document.getElementById('form_location_id');
var location = elLocation.options[elLocation.selectedIndex].value;
document.getElementById("form1").action = "choose.php?id=" + location;
document.getElementById("form1").submit();
}
</script>
<form id="form1" name="form1" method="post">
<select size="1" name="form_location_id" id="form_location_id" onchange='changeDropDown(this);'>
<?php
if ($chosen_id == "1") { ?>
<option value = "1" selected><?php echo "dropdown text" ?></option>
<? } else { ?>
<option value = "1"><?php echo "dropdown text" ?></option>
<?php } ?>
</select>
</form>
<form method="post" action="update.php">
<select size="1" id="choice" name="value">
<?php
while($row = mysqli_fetch_array($query)) {
$id = $row['id'];
$number = $row['number'];
>?
<option value = "<?php echo ($id) ?>"><?php echo "ID=" . ($id) . " - #" . ($number) . ""?></option>
<?php
}
mysqli_close($db_conn);
?>
</select>
<input name="submit" type="submit" value="Submit">
</form>
update.php:
<?php
if (isset($_POST['submit'])) {
$chosen_id = $_POST['id'];
}
?>
`
我只发布了处理select选项和post部分的代码......
为什么$ chosen_id变量始终为0? while循环工作,并填充变量,因为这是使用选项行
中的echo命令测试的非常感谢任何帮助...
答案 0 :(得分:2)
$_POST['id']
和<select size="1" id="choice" name="value">
使用$_POST['value']
答案 1 :(得分:0)
您正在尝试打印错误的密钥
如果你想获得form_location_id
$chosen_id = $_POST['form_location_id'];
如果你想获得choice
$chosen_id = $_POST['value'];
这就是为什么当你将一个表单发布到php时,它使用html name属性作为键将值赋给$ _POST Array
答案 2 :(得分:0)
我将Update.php更改为
<?php
if (isset($_POST['value'])) {
$chosen_id = $_POST['value'];
}
?>
答案 3 :(得分:0)
您需要使用form_location_id
来获取所需的值。您使用错误的密钥来访问数据。您需要使用输入的名称。在这种情况下,输入为select
,其名称为form_location_id
。所以,你需要这样做。
$value = $_POST['form_location_id'];
尝试一下,如果有效,请告诉我。
答案 4 :(得分:0)
感谢所有人发布的想法 - 我实际上已经开始工作了,代码实际上正常工作,只有错误是错误的标签,放在标签内,当放在这个标签之外时它起作用;)