2013-07-04 37 views
0

我有一個表格,其中包含動態內容。 該表包含一個下拉列表,用戶需要選擇一個選項,然後使用ajax返回顯示的數據。 目前它的工作,但問題是,它只適用於第一行。 l當選擇從下拉列表中第二行的結果上 顯示的第一行:「/ !!使用ajax在不同地方從下拉列表中選擇選項後顯示檢索的內容

表的代碼

<table class="bordered" > 
<tr class="bordered"> 

<?php 
$qry=mysql_query("SELECT * 
FROM `order` "); 
    //Check whether the query was successful or not 
    $qry1="SELECT * 
FROM `order` "; 
    $result=mysql_query($qry1); 
    if(mysql_num_rows($qry)>0){ 
?> 
<th>delete</th><th>edit</th><th>staff info</th><th>staff</th><th>ex</th><th>phone</th><th>name</th><th>id</th><th>quantity</th><th>status</th><th>time</th><th>date</th><th>order number</th><th></th> 
</tr> 
    <?php 
      while($info = mysql_fetch_array($result)) 
      { 
      $idem = $info['emp_id']; 
      $q="select * from empoyee where emp_id= '".$idem."';"; 
      $r=mysql_query($q); 
      ?> 
      <tr> 
      <td> 
      <form method="POST" action="delete_asu.php"> 
      <input type="image" src="delete1.png" width="25%" height="20%"/> 
      <input type="hidden" name="delete_id" value="<?php echo $info['order_num']; ?>" /> 
      </form></td> 
      <td> 
      <?php $id=$info['order_num']; 
      echo '<form method="POST" action="update_asu_form.php?id='.$id.'">' ?> 
      <input type="image" src="settings-24-128.png" width="20%" height="15%"/> 
      </form></td> 
      <td id="txtHint"></td> 
      <td> 

       <select name="users" onchange="showUser(this.value)"> 
       <option></option> 
       <?php 

       $sql=mysql_query("SELECT asu_name from asu_staff"); 
       while($row = mysql_fetch_array($sql)){ 
       echo "<option>" .$row["asu_name"]. "</option>"; 
       } 

       ?> 
       </select> 

      </td> 
      <?php 
      while($row = mysql_fetch_array($r)) 
      { 
      ?> 
      <td><?php echo $row['ex']; ?></td><td><?php echo $row['phone']; ?></td><td><?php echo $row['emp_name']; ?></td><td><?php echo $row['emp_id']; ?></td> 
      <?php 
      } 
      ?> 
      <td><?php echo $info['quantity']; ?></td><td><?php echo $info['status']; ?></td> 
      <td><?php echo $info['time']; ?></td><td><?php echo $info['date']; ?></td> 
      <td><?php echo $info['order_num']; ?></td><td><input type="radio" name="choose" value="<?php echo $info['order_num']; ?>" /></td> 
      </tr> 
      <?php 
      } 
     } 
     else echo "<h1>no orders</h1>"; 
     ?> 

</table> 

Ajax代碼

<script> 
function showUser(str) 
{ 
if (str=="") 
    { 
    document.getElementById("txtHint").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 

    } 
    } 
xmlhttp.open("GET","getuser.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 

php代碼

$q=$_GET["q"]; 
      $sql="SELECT * FROM asu_staff WHERE asu_name = '".$q."'"; 
      $result = mysql_query($sql); 
      while($row = mysql_fetch_array($result)) 
      { 
      echo "<table>"; 
      echo "<tr> <td>" . $row['asu_id'] . " </td><td>staff id</td></tr>"; 
      echo "<tr> <td>" . $row['phone'] . " </td><td>staff phone</td></tr>"; 
      echo "</table>"; 

Yaaah它的工作

的想法:

Alhamdullilallah它的工作完美現在:d 問題是從的,我檢索內容 的ID我做一個增量ID,並將其發送給阿賈克斯,那麼它的工作

回答

0

select給出的值是每個選項的值=「」屬性中的值。你的情況,你需要改變的代碼顯示的選項:

<select name="users" onchange="showUser(this.value)"> 
<option value="" selected></option> 
<?php 
    $sql=mysql_query("SELECT asu_name from asu_staff"); 
    while($row = mysql_fetch_array($sql)){ 
    echo "<option value=\"".$row["asu_name"]."\">" .$row["asu_name"]. "</option>"; 
    } 

?> 
</select> 

試試這個。

p.s.您可以在查詢中選擇一個帶有名稱的ID,然後在value =「」屬性中使用該ID。您的php代碼中的查詢可以使用該id代替名稱。

+0

感謝您的快速回復:)但實際上這不是我的問題問題是當我從第二行的下拉列表中選擇第一行顯示內容的選項時。我的主要問題不是返回的數據,但顯示的第二行數據它的工作完美,只有第一行:( –

+0

你檢查了$ q在你的php代碼頁的值嗎? –

+0

我還沒有檢查過的行爲選擇輸入,其中optionn標記沒有value =「」屬性,但我會認爲它們可能總是返回第一個值。 –

相關問題