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?

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

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.