0

我有两个从 MySQL 数据库中读取数据的下拉菜单。我使用 PHP 连接到数据库。第二个下拉菜单应根据第一个下拉菜单上的选择进行填充。这个过程对我来说似乎如下(如果我错了,请纠正我):

  1. PHP 部分连接到 MySQL 数据库并填充 dropdown1。
  2. 用户在 dropdown1 上选择一个值并调用 onchange 事件。
  3. 在 onchange 函数(它是 Javascript)中,一个查询被发送到 MySQL 数据库以根据 dropdown1 选择获取 dropdown2 的值(这里又是 PHP,对吗?)。
  4. dropdown2 被填充。

我不知道如何同时使用 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>
4

2 回答 2

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'];
 ?>
于 2012-12-14T21:55:32.423 回答
0

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

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

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

于 2012-12-14T21:46:58.207 回答