2015-01-01 76 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