使用php

时间:2017-01-11 12:30:44

标签: php jquery html select onchange

我的目标是展示第二个" select"在" div"选项取决于用户在第一个"选择"上所做的选择。 第一个"选择"是一个地区列表,而第二个是前述地区的省份列表。 功能'改变'应该更新div'省,将值传递给另一个用于确定省份的php文件,第二次选择但不会发生。 主页: < PHP $ region = array(""," Abruzzo"," Basilicata"," Calabria"); ?> < HTML>    < script src =" https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js">        功能变化(值){             $('省')。加载(' select.php?id =' + value);        }    < /脚本>    <身体GT;       < DIV>          < select onchange =" change.call(this.value)">             < PHP               为($ I = 0; $ I<计数($区域); $ I ++)               {                       echo"< option value ="。$ i。">"。$ region [$ i]。"< / option>&#34 ;;               }             ?>          < /选择>       < / DIV>       < div id ="省">< / div>     < /体> < / HTML> 更新脚本:  < PHP  $ vector = array(1 => array(" CH"," AQ"," PE"," TE"),                2 =>阵列(" MT"" PZ&#34),                3 =>阵列(" CZ"" CS"" KR"" RC"" VV&#34));  $ id = $ _GET [' id'];  如果($ ID == 0)  {      echo"&#34 ;;  } 其他{    为($ I = 1; $ I≤(计数($矢量)+1); $ I ++)    {        $ N =键($矢量)        如果($ N == $ I)        {            echo"< select>&#34 ;;            $含量=电流($矢量);            为($ K = 0; $ K<计数($内容); $ķ++)            {              echo"< option>"。$ content [$ k]。"< option>&#34 ;;            }            echo"< / select>&#34 ;;            打破;        }        其他        {            下一个($向量);        }    } } ?>

3 个答案:

答案 0 :(得分:0)

您在

中缺少ID选择器#
$('#province').load('select.php?id='+ value);

希望这有帮助。

function change(_this) {
  console.log(_this.value)
  $('#province').load('select.php?id='+ _this.value);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <select  onchange="change(this)">
    <option value="0"></option>
    <option value="1">Abruzzo</option>
    <option value="2">Basilicata</option>
    <option value="3">Calabria</option>
  </select>
</div>
<div id="province"></div>

答案 1 :(得分:0)

您错过了#选择器中的id以及用于更新的PHP文件中;的{​​{1}}。另外,如果您标记了问题$n=key($vector),则应该使用它。内联jQuery已弃用,我建议您 NOT 再使用它。

改变这个:

onchange

到此:

$n=key($vector)

jQuery 代码应如下所示:

$n=key($vector);

HTML 就像这样:

$('select').on('change', function() {
  var selected = $(this).find(":selected").val();
  $('#province').load('send.php?id=' + selected);
});

答案 2 :(得分:0)

**Main page:**
<?php
$region= array("","Abruzzo", "Basilicata", "Calabria");
?>
<html>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
   <script>
    $(document).ready(function(){
        $("#region").change(function(){
            var value=$(this).val();
            $("#province").load('select.php?id='+value);
        });
    });
   </script>

   <body>
      <div>
         <select  id="region" >
            <?php
              for($i=0;$i<count($region);$i++)
              {
                      echo "<option value=".$i.">".$region[$i]."</option>";
              }

            ?>
         </select>
      </div>
      <div id="province"></div>
    </body>
</html>
**Script for updating:**

 <?php
 $vector=array(1 =>array("CH","AQ","PE","TE"),
               2 => array("MT","PZ"),
               3 => array("CZ","CS","KR","RC","VV"));
 $id = $_GET['id'];
 if($id==0)
 {
     echo "";
 }
else{

    if(array_key_exists($id,$vector))
    {
        echo "<select>";
        for($i=0;$i<(count($vector[$id]));$i++)
        {
            echo "<option>".$vector[$id][$i]."</option>";  
        }
       echo "</select>";
    }
}
?>