<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<form>
<label>Seleziona l'ente</label>
<select name="data" id="data">
<option value="PRO - 011142764">COMUNE DI AGLIE'</option>
<option value="PRO - 011120674">COMUNE DI AGRATE CONTURBIA</option>
</select>
<input type="text" name="textfield" id="textfield" />
</form>
<script>
$('#data').change(function() {
$.post("richiesta.php", { value: this.value });
$('#textfield').val(this.value);
});
</script>
</body>
</html>
这是我的简单网页,有2个选项。输入标记仅用于测试POST数据。
这是richiesta.php
,它接收有关更改事件的POST数据(我跟着this线程):
<?php
list($comparto, $ente) = explode("-", $_POST['data'], 2);
echo "comparto: $comparto, ente: $ente";
?>
这是我触发更改事件时发生的事情(来自Firebug)。 POST没问题:
不幸的是,响应中包含空变量($comparto
和$ente
):
explode
/ list
功能有什么问题?
答案 0 :(得分:0)
我对javascript并不过分熟悉,所以我倾向于倾向于自己解决这个问题的方法。也就是说,我认为这可以完成你想要做的事情(不需要你的代码底部附近的脚本):
<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<form action="richiesta.php" method = "post">
<label>Seleziona l'ente</label>
<select name="data" id="data" onchange = "this.form.submit()" >
<option value="PRO - 011142764">COMUNE DI AGLIE'</option>
<option value="PRO - 011120674">COMUNE DI AGRATE CONTURBIA</option>
</select>
<input type="text" name="textfield" id="textfield" onchange="this.form.submit()" />
</form>
</body>
</html>
请注意,如果更改了选择或输入了文本,这将导致表单提交。如果你想让某人有机会改变它们然后提交,你需要稍微更改一下(最好只添加一个提交按钮)。
然后,richiesta.php可以简单地从$_POST['data']
获取数据并从那里爆炸。
答案 1 :(得分:0)
$ _ POST ['data']不存在你发送'value'参数,所以使用$ _POST ['value']