2013-05-25 180 views
0

我想填充從mysql通過PHP結果的初始選擇框。然後,我希望第二個選擇框更新,其中包含與第一個框中所選內容相關的附加信息。動態更新選擇框與PHP的MySQL AJAX

這裏我選擇了一些廣告系列名稱,然後在第二個框中我想更新存儲在MySQL中的廣告系列的版本。

這裏是名腳本:

<html> 
<head> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"> </script> 
    <script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 

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

    Campaign : 
    <select name="campaign" id="campaign"> 
     <option>-Select a Campaign-</option> 
    <?php 
    include "db_conn.php"; 
    $result = mysql_query("SELECT campaign, time FROM dfa_data GROUP BY campaign"); 
    while($row = mysql_fetch_array($result)){ 

    echo "<option value=$row[campaign]>$row[campaign]</option>"; 

    } ?> 
    </select> 


    Version : 
    <select name="version" id="version"> 
     <option>-Select a Version-</option> 
    </select> 
    </body> 
</html> 

那麼還有另外一個腳本,在第二個選擇框提取數據,雖然它不填充和我沒有任何想法,爲什麼。

<?php 
include "db_conn.php"; 

$campaign = $_POST["campaign"]; 

$result = mysql_query("SELECT * FROM dfa_data where campaign='$campaign' GROUP BY time"); 
    while($rowa = mysql_fetch_array($result)){ 
    echo"<option value=$rows[time]>$rows[time]</option>"; 

    } 
?> 

任何人都可以告訴我我做錯了什麼,爲什麼第二個選擇框不會填充。提前致謝。

+0

您是否也在使用AJAX進行第二次選擇?另外,不要在新代碼http://bit.ly/phpmsql中使用mysql_ *函數。它們不再被維護,並且正式被棄用https://wiki.php.net/rfc/mysql_deprecation。瞭解準備語句http://j.mp/T9hLWi並改用PDO http://php.net/pdo或MySQLi http://php.net/mysqli。 – Revent

回答

2

不知道這是你的問題,但它可能是一個問題。在你的第二個腳本,你必須:

while($rowa = mysql_fetch_array($result)){ 
    echo"<option value=$rows[time]>$rows[time]</option>"; 
} 

你取到$rowa,但在嘗試訪問$rows。試試這個。

while($row = mysql_fetch_array($result)){ 
    echo '<option value="'.$row['time'].'">'.$row['time'].'</option>'; 
} 
+0

這兩個腳本中的語法更改都解決了問題。非常感謝你。 – user1763208

+0

不客氣。有時候只需要第二雙眼睛。 :) – Revent

0

我認爲rowa和rows是錯誤。嘗試行而不是兩個