php - 选择未传递给post的选项值

时间:2015-10-15 15:44:45

标签: javascript php html

我非常坚持这个代码,我真的不明白为什么它不应该工作,我不知道我之前运行的一些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命令测试的

非常感谢任何帮助...

5 个答案:

答案 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)

感谢所有人发布的想法 - 我实际上已经开始工作了,代码实际上正常工作,只有错误是错误的标签,放在标签内,当放在这个标签之外时它起作用;)