douyao1878
2014-12-30 00:40
浏览 33
已采纳

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

<!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>

Here's my simple web page with 2 options. The input tag is just for testing the POST data.

Here's richiesta.php, that receives the POST data on change event (I followed this thread):

<?php
list($comparto, $ente) = explode("-", $_POST['data'], 2);
echo "comparto: $comparto, ente: $ente";
?>

Here's what happens when I trigger the change event (from Firebug). POST is ok: enter image description here

Unfortunately the response has empty variables ($comparto and $ente): enter image description here

What's the problem with the explode/list function?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • duanquan1876 2014-12-30 02:31
    已采纳

    $_POST['data'] doesn't exist you send 'value' param, so use $_POST['value']

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • dongtaogu8510 2014-12-30 02:16

    I'm not overly familiar with javascript, so I tend to lean towards my own ways of solving this. That said, I think this would accomplish what you are trying to do (without the need for your script near the bottom of your code):

    <!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>
    

    Note that this will cause the form to submit if either the select is changed or if text is entered. If you want to give someone the opportunity to alter both of them and THEN submit, you'll need to change this up a bit (probably best to just add a submit button).

    Then, richiesta.php could simply get the data from $_POST['data'] and explode it from there.

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题