2015-01-01 57 views
0

这里有一个片段我用从一个URL指定2个变量的聚集在JSON的一些数据没有传递正确。所以我建立了一个简单的网页和2个选项。输入标签仅用于测试POST数据。变量使用列表功能

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

这是richiesta.php,接收上改变事件的POST数据(我也跟着this线程):

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

请求正常工作,对改变事件中,我顺利拿到了岗位价值:

enter image description here

由于它的工作我现在可以放在richiesta.php我的“真实”的功能与两个VA riables,这一次不是手动而是从POST请求检索值:

<?php 

function soldipubblici() { 
    list($comparto, $ente) = explode("-", $_POST['value'], 2); 

    $curl_parameters = array(
     'codicecomparto' => $comparto, 
     'codiceente'  => $ente, 
    ); 

    $ch = curl_init(); 

    curl_setopt($ch,CURLOPT_URL,"http://soldipubblici.gov.it/it/ricerca"); 
    curl_setopt($ch,CURLOPT_POST,true); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($curl_parameters)); 
    curl_setopt($ch,CURLOPT_HTTPHEADER,array (
     "Content-Type: application/x-www-form-urlencoded; charset=UTF-8", 
     "Accept: application/json", 
     "X-Requested-With: XMLHttpRequest", 
    )); 

    $output=curl_exec($ch); 

    curl_close($ch); 
} 

echo soldipubblici(); 

?> 

遗憾的是它不工作:( 我得到在Firebug空响应......如果在同一个片段我手动设置2变量,而不是如果工作...似乎他们没有正确通过list函数。

回答

0

在选项中有-左右的空格,您可能需要删除它们。

$curl_parameters = array(
    'codicecomparto' => trim($comparto), 
    'codiceente' => trim($ente), 
); 
+0

是的!完善。 :) – MultiformeIngegno

+0

最后一件事:我怎样才能修改我的jQuery代码片段,在输入框中输出响应(现在我只能看到Firebug)(而不是“this.value”)? – MultiformeIngegno

+0

向'$ .post()'添加一个回调函数,该函数完成你想要的响应。 – Barmar