2014-02-27 36 views
0

我想通過PHP填充從PDO MySql的結果初始客戶選擇框。然後,我希望第二個聯繫人選擇框更新,其中包含與第一個框中所選內容相關的附加信息。我無法獲得第二個腳本的工作。我認爲問題出在我的ajax腳本中,因爲PHP腳本在自己運行時運行良好。動態更新選擇框與PHP的MySQL jquery ajax

初級腳本

<html> 
<head> 
    <script type="text/javascript" src="js/jquery-1.11.0.js"></script> 
    <script type="text/javascript" src="js/jquery-ui-1.10.4.custom.js"></script> 

    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $("#contact").change(function(){ 
       var cid = $("#cid").val(); 
       $.ajax({ 
        type:"post", 
        url:"contact.php", 
        data:"cid="+cid, 
        success: function(data) { 
         $("#contact").html(data); 
        } 
       }); 
      }); 
     }); 
    </script> 
</head> 
<body> 

    Campaign : 
    <select name="customer" id="customer"> 
     <option>-Select a Customer-</option> 
    <?php 
    include ("function.php"); 
    include("connect.php"); 
    $id = $_SESSION['profile']['id']; 
    foreach($db->query("SELECT * FROM customers WHERE pid = '$id'") as $row) { 
     echo "<option value=" . $row['id'] . ">" . $row['name'] . "</option>"; 
} 
     ?> 
    </select> 



    <select name="contact" id="contact"> 
     <option>-Select a Contact-</option> 
    </select> 
    </body> 
</html> 

聯絡腳本

include("connect.php"); 
$cid = $_POST["cid"]; 
foreach($db->query("SELECT * FROM contact WHERE cid = '$cid'") as $row) { 
    echo '<option value="'.$row['id'].'">'.$row['name'].'</option>'; 

回答

1

也許你的第二個功能應該開始#customer變化

0

我看你使用的聯繫人,然後選擇在阿賈克斯沒有顧客,你描述。但是,您編寫的代碼中,您使用帶有更改事件的聯繫人選擇器,但聯繫人選擇框只包含一個值,它如何更改?

<select name="contact" id="contact"> 
    <option>-Select a Contact-</option> 
</select> 

以前的選擇應該有更多的選項可以改變。或者,我想你指的是不是#customer如下聯繫: -

$("#customer").change(function(){ 
       // your code; 
      }); 
0

爲什麼不直接用encode的ID和名稱的JSON響應?

foreach($db->query("SELECT * FROM contact WHERE cid = '$cid'") as $row) { 
    $arr[] = array("id" => $row['id'], "name" => $row['name']); 
} 
echo json_encode($arr); 

然後在你的Ajax響應,你可以做

$(document).ready(function() { 
    $("#customer").change(function() { 
     var cid = $("#customer").val(); 
     $.ajax({ 
      type: "post", 
      url: "contact.php", 
      data: {cid: cid}, 
      success: function (data) { 
       var options = []; 
       $.each(data, function() { 
        options.push('<option value="' + this.id + '">' + this.name + '</option>'); 
       }); 
       $("#contact").html(options.join("")); 
      } 
     }); 
    }); 
}); 
+0

我換給你建議的紙條,現在我甚至不得到所有我看到的是一個向下箭頭 –

+0

無視我剛剛說的,我在聯繫人下拉列表中沒有任何內容,只是硬編碼的東西。 –

+0

我只注意到你的代碼有其他錯誤。我會更新答案 – Tomanow