Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript php-选择选项值未传递给post_Javascript_Php_Html - Fatal编程技术网

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

Javascript php-选择选项值未传递给post,javascript,php,html,Javascript,Php,Html,我被这段代码卡住了,我真的不明白为什么它不应该工作,我不知道我之前运行的一些javascript代码是否有干扰 仅显示代码的相关部分 当选择另一个下拉列表时,javascript的第一部分将更新页面,并放在我正在处理的代码之前: ` 函数更改下拉列表(){ var elLocation=document.getElementById('form_location_id'); var location=elLocation.options[elLocation.selectedIndex].va

我被这段代码卡住了,我真的不明白为什么它不应该工作,我不知道我之前运行的一些javascript代码是否有干扰

仅显示代码的相关部分

当选择另一个下拉列表时,javascript的第一部分将更新页面,并放在我正在处理的代码之前: `


函数更改下拉列表(){
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();
}

update.php:

<?php
if (isset($_POST['submit'])) {
$chosen_id = $_POST['id']; 
}
?>
`

`
我只发布了处理select选项和post部分的代码

为什么$selected\u id变量总是0? while循环起作用,fill是变量,因为这是在选项行内使用echo命令测试的


非常感谢您的帮助……

$\u POST['id']


使用
$\u POST['value']

您试图打印错误的密钥 如果您试图获取
form\u location\u id的值

$chosen_id = $_POST['form_location_id']; 
如果您试图获取
choice

$chosen_id = $_POST['value']; 

这就是为什么在将表单发布到php时,它会使用html名称属性作为键将值分配给$\u post Array

我会将Update.php更改为

<?php
if (isset($_POST['value'])) {
$chosen_id = $_POST['value']; 
}
?>

您需要使用
表单\u location\u id
获取所需的值。您使用了错误的密钥访问数据。您需要使用输入的名称。在这种情况下,输入是
选择
,其名称是
表单位置id
。所以,你需要这样做

$value = $_POST['form_location_id']; 


试试看,让我知道它是否对你有效。

谢谢大家发布想法-我实际上已经让它工作了,代码实际工作了,唯一的错误是一个放错了的标签,它放在标签内,当放在这个标签外时它工作了;)

对于
$\u POST['submit']
,您看到了什么?这个变量被传递了,奇怪的是。。。值为“Submit”,因为它应该是您的php结束标记在“>?”处不,仍然没有解析值,我以前做过很多次,但是没有和同一页面上的javasript一起,我真的不知道为什么它不工作…@BulletEydk,你能解释一下,你想要什么吗?我看到GET参数“id”和POST参数“value”和“form\u location\u id”。您需要哪一个?当顶部下拉菜单更改时,javascript将刷新页面,这是get使用的id。。。然后,它将加载具有该id的刷新页面。。。并更改底部下拉列表中我提到的代码的内容。。。问题是将下拉变量解析到另一个页面,submit和postI只添加了java脚本代码,因为我认为这可能是不解析变量的问题,但我不确定。。。所有代码都可以工作,只是在提交后不使用post收集提交的变量。您可以在浏览器开发人员的工具中签入浏览器发送到服务器的post数据。form_location_id实际上是javascript中使用的变量值,因此,这不是我试图获取的变量……这就是为什么我也将选择放在那里,因为有两个选择标记。:)啊,当然了:)-但这仍然没有得到变量。。。我想这一定是因为我的页面上有两个,一个使用javascript,一个处理提交,表单的名称不同,变量也不同,所以这不会带来任何问题,但我想这真的不会是任何其他事情…,谢谢你的帮助,直到现在。哦,是的,我错过了。。您正在提交JS中的form1,但所需的选择是以其他形式提交的,这就是数据无法获得post的原因。编程很有趣:)希望你能解决这个问题。仍然是一个空变量OK,我想知道你在提交表单之前是否选择了一个选项。可能是select元素的值是空的,就像另一条评论中提到的那样,关闭php标记也可能是一个问题。看第二种形式。我在select option语句中做了一个回应,我试图传递的实际ID显示在下拉菜单中,所以我猜值在那里,只是没有传递,我想你的意思是:/option>我实际上指的是如何像这样关闭php:
不,没有工作,这个“form_location_id”在我试图从中获取数据之前的另一个中,无论如何感谢您的帮助;)我现在明白了。如果是另一个,那么您需要使用
$\u POST['value']
我相信。即使这不起作用,也可以尝试在浏览器中检查php中生成的HTML,您可能会发现一些错误的线索。
$value = $_POST['form_location_id'];