Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 下拉选择可自动更改第二个下拉选择_Php_Javascript_Html - Fatal编程技术网

Php 下拉选择可自动更改第二个下拉选择

Php 下拉选择可自动更改第二个下拉选择,php,javascript,html,Php,Javascript,Html,我有一个网页,其中我有一个表格,有几个区域可以输入文本和两个下拉选择选项。第一个是国家,第二个应该显示该国家要选择的遗产。 我的页面连接到我的数据库,它从那里获取国家和地产。。。。我有一张列有国家名称的表格,每个国家的房地产有一张表格。 因此,我所要做的就是让它更改状态,以便根据选择的国家自动进行选择,而不求和表单,因为这会在我的db中的另一个表中输入一个新条目。 我知道使用javascript是一条可行之路,但在我的情况下无法让它工作,因为我不想被发送到另一个页面或表单。 这里是我的代码的一部

我有一个网页,其中我有一个表格,有几个区域可以输入文本和两个下拉选择选项。第一个是国家,第二个应该显示该国家要选择的遗产。 我的页面连接到我的数据库,它从那里获取国家和地产。。。。我有一张列有国家名称的表格,每个国家的房地产有一张表格。 因此,我所要做的就是让它更改状态,以便根据选择的国家自动进行选择,而不求和表单,因为这会在我的db中的另一个表中输入一个新条目。 我知道使用javascript是一条可行之路,但在我的情况下无法让它工作,因为我不想被发送到另一个页面或表单。 这里是我的代码的一部分,任何帮助都将不胜感激。谢谢

 $paissql = "SELECT * FROM Paises_table";
 $paisresult = mysql_query($paissql);

 ?>
 <script language="text/javascript">
 function showMe(str)
 {

 <? $estadosql = "SELECT * FROM ".str."_table";
 $estadoresult = mysql_query($estadosql); ?>
 }
 </script>


 <TABLE BORDER="2" CELLPADDING="2" CELLSPACING="2" ALIGN="CENTER"> 
 <form action="<?php echo $_SERVER['PHP_SELF']?>"  method=POST>
 <TR><th> id </th> <td><?php echo $row_to_edit['id']?></td>
 </TR>
 <TR><th>Nombre:</th><td><input type="TEXT" name=Nombre value="<?php echo      $row_to_edit['Id_Nombre']?>" 
 SIZE="100"></td></TR>        
 </td></TR>
 <TR><th>Pais:</th><td>
 <select name=Pais onchange="showMe(this.value);" > 
 <?
 while($rowp = mysql_fetch_array($paisresult)) {
 $pais = $rowp['Name'];
 ?>
 <option value=<?php echo $pais; ?>
   <?php if($row_to_edit['Pais']==$pais)
 { echo ' selected="true"';} ?>
 ><?php echo $pais; ?>
 </option>
 <?
 }
 ?>
 </select></td></TR>
 <TR><th>Estado:</th><td>
 <select name=Estado >  
 <?

 while($rowe = mysql_fetch_array($estadoresult)) {
 $estado = $rowe['Estado'];
 ?>
 <option value=<?php echo $estado; ?> <?php if($row_to_edit['Estado']==$estado)
 { echo ' selected="true"';} ?>
 ><?php echo $estado; ?></option>
 <?
 }
 ?>
 <TR><th>Ciudad:</th><td><input type="TEXT"  name=Ciudad  value="<?php echo   $row_to_edit['Ciudad']?>" 
 SIZE="100"></td></TR>
 <TR><th>Website:</th><td><input type="TEXT"  name=website  value="<?php echo  $row_to_edit['website']?>" 
 SIZE="100"></td></TR>
 <TR><td> </td>
 <td>
  <input type="HIDDEN"  name="id"  value="<?php echo $edit_id?>">
  Para agregar preciona aqui:
  <input type="SUBMIT"  name="ACTION"  value="AGREGAR">

 </td>
 </TR>
</form>
</TABLE>    
 <BR>
 <BR>
我希望您知道,使用普通PHP进行开发是90年代的事情。我希望你知道,使用mysql_*就像是为黑客敞开大门

您需要的东西称为AJAX和事件绑定。基本上,您观察第一个下拉列表,当其状态发生变化时(即用户选择一个国家),您向服务器发出异步请求,检索该特定国家的地区列表,然后重建第二个下拉列表。如果您不需要支持大量的国家/地区,那么在每次请求时下载整个数据库可能是一个很好的折衷方案:这样您的用户就不必等待ajax调用,会有一个很小但可以感知的延迟,但会浪费带宽。你可以选择

关于Javascript部分,您可能希望使用一个库来观察事件和管理AJAX,可能还需要使用。对于级联下拉列表,即使服务器端的技术是ASP,而不是PHP,但您对JS部分感兴趣

我提出了一个涉及PHP、针对AJAX的jQuery和Knockout的快速解决方案。你不需要完全采用它,有成千上万种可能的变化。至少,你会有一个了解学习内容的起点

var国家=; $function{ var模型=发达国家{ var self=这个; self.countries=ko.countries; self.regions=ko.observearray[]; self.getRegions=函数{ $.get?json,{country:$country.val},functionregions{ 自我区域; }; } } var国家=新模式国家; ko.应用绑定中心; //初始化绑定后的第二个下拉列表 国家和地区; }; 级联下降 国家: 地区:
不能像这样将javascript与PHP混合使用。您需要AJAX的可读性,这一直是一个考虑因素。@codingbiz-AJAX不是唯一的解决方案。OP还可以包括一个国家和不动产列表,并根据该列表动态构建第二个下拉列表。如果不知道所涉及数据的大小,就很难给出好的建议。作为一种退步,OP可以设置它,以便用户选择国家,然后转到下一页选择遗产,并通过JS和AJAX一起避免。数据不多,一个表中只有20个国家,然后每个国家有20个表,我将所有遗产添加到每个国家。每个国家有20个表?对于我来说,这听起来不对,因为教程的链接确实符合我的要求,但由于使用了另一种我不知道的编码,我没有找到一种方法在我的案例中使用它。谢谢你,是的,我知道如果我使用mysql,任何人都可以访问我的数据库,但这只是为了我自己学习。不管我有什么,这只是为了我学习。所以尽你所能学习最好的:如果你知道mysql扩展有缺陷且不安全,就扔掉它!如果您知道不验证用户输入可能会导致问题,请使用库!真的,学习错误有什么意义呢?谢谢你的建议,你不需要知道,但我只是在学习如何使用mysql连接到我的数据库,所以我提出了这个问题,因为我正在用我在这里和那里找到的片段自己做一个表,能够学习AJAX将是一个不同的故事。无论如何,谢谢你。