Php 从其他输入获取输入值

Php 从其他输入获取输入值,php,javascript,mysql,sql,Php,Javascript,Mysql,Sql,我有一个小问题,我有一个表单,有三个字段,我的问题是: 在我通过javascript获取的国家和城市的2和3输入中,我想做的是让城市输入抛出我在国家输入中选择的国家的值,下面是javascript <script> var availableTags = [ <?php $sql = "select * from citys "; $rsd = mysql_query($sql); while($row = mysql_fetch_array($rsd

我有一个小问题,我有一个表单,有三个字段,我的问题是: 在我通过javascript获取的国家和城市的2和3输入中,我想做的是让城市输入抛出我在国家输入中选择的国家的值,下面是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,在第二个查询中,我应该选择*from citys,其中countryid=$countryid


知道如何做到这一点吗?

最好的方法可能是使用ajax和json的组合。那么应该是这样的

getCities.php

Javascript


哎哟请格式化代码。很难看到…结尾的第二行有一个语法错误,它关闭了source函数,但它只有}而不是}我在那里编辑过,更清晰的提示:-在将php数组转换为javascript数组时使用json_编码。-您没有使用$pid,为什么要设置它?你为什么选择它呢?将select语句中的*替换为city,state。在本例中,我使用了一个select框,但您也可以在其中使用自动完成脚本。
<?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);
?>
$.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);
  }
});