POST两个值并检索php函数onchange的结果

时间:2014-12-30 00:40:05

标签: javascript php jquery arrays explode

<!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没问题: enter image description here

不幸的是,响应中包含空变量($comparto$ente): enter image description here

explode / list功能有什么问题?

2 个答案:

答案 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']