2014-09-03 94 views
-1

我知道这是一个愚蠢的问题,但我是新的AJAX和 我尝试了很多从互联网上获得的代码,但仍然无法做到这一点简单的事情 因此最后我在这里发布我的问题 有些事情是错误的当我选择第一个下拉列表选项 什么也没有发生 数据库表名是sub_menu及其字段说明如下 ID,sub_item_name,ITEM_NAME,价格如何在php中使用多个下拉菜单中的AJAX?

这是我的脚本,我把additem.php文件

<script> 
     function showSubItem(sel) { 
    var item_name = sel.options[sel.selectedIndex].value; 
    $("#subItemTr").html(""); 
    if (item_name.length > 0) { 

$.ajax({ 
     type: "POST", 
     url: "subitem.php", 
     data: "item_name="+item_name, 
     cache: false, 
     success: function(html) {  
      $("#subItemTr").html(html); 
     } 
    }); 
} 
} 
</script> 

和他是我的两个下拉菜单都是以表格的形式 我主菜单还在工作,显示从数据库中的所有选项,所以我不张贴的 一部分这里

<tr> 
    <td width="251">Select Master Menu Name</td> 
    <td width="47">:</td> 
    <td width="342"><select name="iname" id="iname" class="form-control" onChange="showSubItem(this);"> 
    <option selected="selected">Select Main Menu</option> 
    <?php 
    $abc = "select * from main_menu"; 
    $lkg = mysql_query($abc); 
    while($ukg = mysql_fetch_row($lkg)) 
    { 
    ?> 
    <option><?php echo $ukg[1]; ?></option> 
    <?php } ?> 
    </select>  </td> 
</tr> 
<tr> 
    <td width="251">Sub Item Name</td> 
    <td width="47">:</td> 
    <td width="342" id="subItemTr" ><select name="subname" id="subname" class="form-control"> 
    <option selected="selected">Select Sub Item</option> 
    </select></td> 
</tr> 

这里是我的subitem.php文件代码如下

<?php 
    include 'config.php'; 
    $item_name = ($_POST["item_name"] <> "") ? trim(addslashes($_POST["item_name"])) : ""; 
    if ($country_id <> "") { 
    $sql = "SELECT * FROM sub_menu WHERE item_name = ".$item_name ." ORDER BY sub_item_name"; 
    $count = mysql_num_rows(mysql_query($sql)); 
    if ($count > 0) { 
    $query = mysql_query($sql); 
    ?> 
    <select name="sub_item"> 
     <option value="">Please Select</option> 
    <?php while ($rs = mysql_fetch_array($query)) { ?> 
     <option><?php echo $rs["item_name"]; ?></option> 
    <?php } ?> 
    </select> 
    <?php 
     } 
    } 
    ?> 
+0

是AJAX调用执行?如果是这样,服务器的响应是什么? – Stryner 2014-09-03 13:31:47

+0

@Ninsly如何检查它的执行与否......当我在第一个复选框中选择任何值时,第二个就会消失...所以我想它会去subitem.php,但我不知道如何检查我传递给subitem.php页面的值是否为 – 2014-09-03 13:45:04

+0

如果您使用的是普通浏览器,它应该有开发工具(通常可以通过按F12切换)。应该有一个网络或网络选项卡,您可以在其中跟踪请求。 – Stryner 2014-09-03 13:52:33

回答

0

这应该

<option><?php echo $rs["item_name"]; ?></option> 

<option value="<?php echo $rs["item_id"]; ?>"><?php echo $rs["item_name"]; ?></option> 

我给了$ rs [“item_id”];无论你想要什么领域的价值来修复它。

而且也

改变这一行也

+0

我仍然没有得到价值= id会帮助或不会,以及它会如何帮助...但我仍然这样做,仍然没有得到任何输出......无论如何感谢您的重播 – 2014-09-03 13:43:06

0

你的选择框选项应该具有价值属性。直到您的条件if (item_name.length > 0) {应该失败。

<option><?php echo $ukg[1]; ?></option> 

应该

<option value="<?php echo YOUR_VALUE ?>"><?php echo $ukg[1]; ?></option> 



    <option><?php echo $rs["item_name"]; ?></option> 

应该

<option value="<?php echo YOUR_VALUE ?>"><?php echo $rs["item_name"]; ?></option> 

而且目前您是在值发送对象来代替。

<select name="iname" id="iname" class="form-control" onChange="showSubItem(this);"> 

应该

<select name="iname" id="iname" class="form-control" onChange="showSubItem(this.value);"> 

这样你就可以直接从您的变量sel

var item_name = sel;

+0

我不知道这将如何帮助,但我做到了无论如何,仍然没有工作 – 2014-09-03 13:40:41

+0

我@RajivRisi尝试使用这个。值和item_name = sel但仍然当我选择第一个下拉菜单中的任何值都会消失并且不显示 – 2014-09-03 13:49:31

+0

检查subitem.php的响应。你的文件输出错误。所以它用旧的selectbox写完了。 – RajivRisi 2014-09-03 13:52:10

0

访问选定的价值你不定义在subitem.php文件,多数民众赞成在$ COUNTRY_ID为什么代码无法在if语句内部执行。您可以为$ country_id定义某些内容,或者在不需要的情况下移除该情况。然后,它会工作

例子:

<?php 
    include 'config.php'; 
    $country_id = 'something'; 
    $item_name = ($_POST["item_name"] <> "") ? trim(addslashes($_POST["item_name"])) : ""; 
    if ($country_id <> "") { 
    $sql = "SELECT * FROM sub_menu WHERE item_name = ".$item_name ." ORDER BY sub_item_name"; 
    $count = mysql_num_rows(mysql_query($sql)); 
    if ($count > 0) { 
    $query = mysql_query($sql); 
    ?> 
    <select name="sub_item"> 
     <option value="">Please Select</option> 
    <?php while ($rs = mysql_fetch_array($query)) { ?> 
     <option><?php echo $rs["item_name"]; ?></option> 
    <?php } ?> 
    </select> 
    <?php 
     } 
    } 
    ?> 
+0

其实@ user787669其我在这里粘贴代码错误...它的$ item_name和我改变了,但它仍然不工作 – 2014-09-03 14:03:18