[英]php - select option value not passed to post
我一直停留在这段代码上,我真的看不出来为什么它不起作用,我不知道事先运行的一些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选项的代码,并发布了部分内容...
为什么$ chosen_id变量始终为0? while循环有效,并填充变量,这是使用选项行中的echo命令测试的
任何帮助深表感谢...
$_POST['id']
和<select size="1" id="choice" name="value">
使用$_POST['value']
如果您尝试获取form_location_id
的值,则尝试打印错误的密钥
$chosen_id = $_POST['form_location_id'];
如果您试图获得choice
的价值
$chosen_id = $_POST['value'];
这就是为什么当您将表单发布到php时,它使用html name属性作为键来将值分配给$ _POST数组的原因
我将Update.php更改为
<?php
if (isset($_POST['value'])) {
$chosen_id = $_POST['value'];
}
?>
您需要使用form_location_id
来获取所需的值。 您使用了错误的密钥来访问数据。 您需要使用输入的名称。 在这种情况下,输入为select
,其名称为form_location_id
。 因此,您需要执行此操作。
$value = $_POST['form_location_id'];
试试看,让我知道是否适合您。
感谢大家发布想法-我实际上已经使它起作用,代码实际上正在起作用,唯一的错误是放错了标签,该标签放置在标签内,而放置在该标签外则有效;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.