繁体   English   中英

php-选择选项值未传递到发布

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM