0

私の会社では、郵便番号に基づいて郊外のリストを返す小さなツールが必要なので、今週 PHP/HTML の学習を開始しました。私の知識は非常に限られていますが、思い通りに機能させることができました。onchange/onblur を除いて、ページ全体をリロードします。ドロップダウンボックスをリロードするだけの方法を見つけたり、見つけたりすることができないようです。インターネットを検索すると、Jquery または Javascript がこれを行う唯一の方法になるようです。しかし、私のニーズに十分に近い例/チュートリアルが見つかりません。

これがコードです。基本的に、テキスト入力を入力し、クリックすると郵便番号が API に配置され、対応するすべての郊外が JSON 形式で返されます。次に、ドロップダウン ボックスに JSON データが入力されます。

あなたの助けは大歓迎です!

<?php
//Turn data from user entry screen into variables
$pcode = $_GET["pcode"];
//Load API key and API URL
include 'api.php';

//Initializing curl
$ch = curl_init($url);
//Setting curl options
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
//Getting results
$api_result = curl_exec($ch);
//Close Curl
curl_close($ch); 

//Place API call results into $data variable
$suburb_data = json_decode($api_result, TRUE);

//Display JSON Data - Comment out in production
//var_export($suburb_data);

//Turn suburb list array in a variable
$suburb_list = ($suburb_data['result']);

//Count the amount  of results
//$suburb_count = count($suburb_list);
?>

<form method="get">
  <table width="308" border="0">
    <tr>
      <td width="95">Postcode:</td>
      <td width="98"><label>
        <input name="pcode" type="text" id="pcode" onblur="this.form.submit()" style="width: 40px;"onchange='this.form.submit()' value="<?php echo htmlspecialchars($_GET['pcode']); ?>" />
      </label></td>
      <td width="88"></td>
    </tr>
    <tr>
      <td>Suburb:</td>
      <td><label>
<?php
echo'<select name="city">';
//Loop through the array "results" and find all values for "Town"
foreach ($suburb_list as $towns) {
    echo '<option value="'.$towns['Town'].'">'.$towns['Town'].'</option>';;
}
echo '</select>';

?>
      </label></td>
      <td></td>
    </tr>
    <tr>
      <td><label>
        <input type="submit" name="button" id="button" value="Submit" />
      </label></td>
      <td></td>
      <td></td>
    </tr>
  </table>

</form>
4

1 に答える 1

0

ajaxを使用すると、ページをリロードせずにサーバーからデータを送信および取得できます。

于 2013-01-10T06:08:45.553 に答える