2014-09-03 74 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