0

少し問題があります。フォームがあり、3 つのフィールドがあります。私の問題は次のとおりです。2 番目と 3 番目の入力で、国と都市の JavaScript 値を介して取得します。やりたいことは、都市の入力で国の入力で選択した国の値、javascript はこちら

     <script>
 var availableTags = [
 <?php 

 $sql = "select * from citys ";
 $rsd = mysql_query($sql);

 while($row = mysql_fetch_array($rsd))
{
    $pid=$row['cid'];
    $city=$row['city'];
    $state=$row['state'];
 ?>
    "<?php echo $city; ?>,<?php echo $state; ?>",
    <?php } ?>

 ];
 $( "#inputsearch21" ).autocomplete({
 source: function( request, response ) {
 var matches = $.map( availableTags, function(tag) {
 if ( tag.toUpperCase().indexOf(request.term.toUpperCase()) === 0 ) {
    return tag;
  }
});
response(matches);
}
 });
</script>

国スクリプトは同じで、国データベースの php を変更します。最初のフォームから国の ID を取得する必要があることはわかっています。2 番目のクエリでは、"select * from citys where countryid="$countryid" にする必要があります。

これを行う方法はありますか?

4

1 に答える 1

0

おそらく最善の方法は、ajax と json の組み合わせで作業することです。次に、このようなものにする必要があります。

getCities.php

<?php
  /* your connection ofc. */
  $con = database_connection();

  /* example unsecure please use PDO */
  $sql = "SELECT ID, Name FROM City WHERE Country = '" . $_GET['country'] . "'";
  $rsd = mysql_query($sql); 
  $res = mysql_fetch_array($rsd);

  /* Return output in json format */
  echo json_encode($res);
?>

Javascript

$.ajax({
  type: "GET",
  url: "getCities.php",
  data: { country: "Germany" }
}).done(function( output ) {
  /* Example for select inputs */
  var cities = eval('(' + output + ')');
  var length = cities.length;

  for(var i = 0; i < length; i++)
  {
    var newOption = $('<option/>');
    newOption.attr('text', cities[i].Text);
    newOption.attr('value', cities[i].Value);
    $('#ID-OF-SELECTBOX').append(newOption);
  }
});
于 2013-08-29T22:10:29.617 に答える