使用php和javascript下拉onchange方法

时间:2012-12-14 21:20:39

标签: php javascript javascript-events drop-down-menu onchange

我有2个下拉菜单,可以从MySQL数据库中读取数据。我用php连接数据库。应根据第一个下拉列表中的选择填充第二个下拉列表。这个过程对我来说如下(如果我错了,请纠正我):

  1. php部分连接到MySQL数据库并填充dropdown1。
  2. 用户在dropdown1上选择一个值并调用onchange事件。
  3. 在onchange函数(这是javascript)中,查询被发送到MySQL数据库以根据dropdown1选择获取dropdown2的值(这里再次是php,对吧?)。
  4. dropdown2将被填充。
  5. 我不知道如何一起使用javascript和php来完成这项任务(上面的数字3)。或者这可能根本不是这样做的。请指教!

    这是我的代码。如下所示,我在php代码中放了一个javascript函数,我认为这是错误的。那就是我被困住的地方!

    <php
    $sql="SELECT distinct category FROM table1";
    $result=mysql_query($sql);
    
    $optionsCat="";
    while($row = mysql_fetch_row($result)){
        $optionsCat.="<option value=\"$row[0]\">$row[0]</option>";
    }
    
    function genSubCat($catID){
    $sql="SELECT distinct subcategory FROM table1 where category=".$catID;
    $result=mysql_query($sql);
    
    $optionsSubCat="";
    while($row = mysql_fetch_row($result)){
        $optionsSubCat.="<option value=\"$row[0]\">$row[0]</option>";
    }
    }
    
    ?>
    <select name="catDropDown" onChange="genSubCat(this)">
        <option value="0">Select category</option>
        <?php echo $optionsCat?>
    </select>
    <select name="subcategoryDropDown">
        <option value="0">Select subcategory</option>
        <?php echo $optionsSubCat?>
    </select>
    

2 个答案:

答案 0 :(得分:1)

这里我们有一个简单的页面,上面有输入。在其中键入一个单词,然后单击输入。 Ajax将调用myphp.php脚本并返回您在原始部门下面输入的相同单词。

test.html

<!DOCTYPE html>
<html lang="en">
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript"> 
$(document).ready(function() {
$("#faq_search_input").blur(function(){
   var faq_search_input = $(this).val();
   var dataString = 'keyword='+ faq_search_input;
   if(faq_search_input.length>1){
      $.ajax({type: "GET", url: "myphp.php", data: dataString,
              success: function(server_response) {
                 document.getElementById("searchresultdata").style.display = "block";
                 $('#searchresultdata').html(server_response).show();
              }
          });
       }
       return false;
   });
});

</script>
  </head>
  <body>
<div class="searchholder">
    <input  name="query" class="quicksearch" type="text" id="faq_search_input" />
<div id="searchresultdata" class="searchresults" style="display:none;"> </div>
</div>
  </body>
</html>

myphp.php

 <?PHP
    echo $_GET['keyword'];
 ?>

答案 1 :(得分:0)

我认为您应该首先学习使用基于网络的语言。您提供的代码完全错误。您是否尝试通过HTML访问PHP代码?我的意思是来吧!

第一条规则:基于服务器的语言无法与基于客户端的语言进行通信。

您必须发送请求并获得响应,并且您希望执行该下拉操作的方式是向PHP代码发送请求并从中获取相关数据。正如特鲁法在评论中所说,您可能希望查看jQuery库,但在此之前我认为您需要检查AJAX