2012-01-13 154 views
-1

我有一個php頁面顯示來自mysql數據庫的數據,基於下拉列表選擇,也從一個mysql數據庫。這顯然使用了Java腳本。在html表中顯示從遠程php(mysql)獲取的數據

php和mysql的集成工作正常,但是我需要改變數據的顯示方式。

當前返回的mysql數據顯示在一個表格單元格中,我希望每個返回的mysql字段都顯示在它自己的表格單元格中。

我已經添加了輸出的照片,我希望它顯示在每個表格單元中,而不是一個。

我附上了我的php文件和查詢數據庫的php文件的代碼。

任何援助將不勝感激!

的index.php

<html> 
<head> 
<script type="text/javascript"> 
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","getdata.php?q="+str,true); 
    xmlhttp.send(); 
} 
</script> 
</head> 
<body> 
<?php 

$con = mysql_connect('localhost', 'unilever_root', 'Unilever2011'); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("unilever_unilever", $con);  

$skusql="SELECT packcode from skudata"; 
$resultsku=mysql_query($skusql); 

$optionssku=""; 

while ($row=mysql_fetch_array($resultsku)) 
{ 
    $sku=$row["packcode"]; 
    $optionssku.="<OPTION VALUE=\"$sku\">".$sku; 
} 

?> 

<table border=1> 
<tr> 
    <td>SKU</td> 
    <td>Description</td> 
    <td>SU</td> 
    <td>Points</td> 
    <td>Category</td> 
    <td>Grouping</td> 
</tr> 
<tr> 
    <td> 
     <select name="users" onchange="showUser(this.value)"> 
      <OPTION VALUE=0> 
      <?=$optionssku?> 
     </SELECT> 
    </td> 
    <td> 
     <div id="txtHint"><b>SKU Details will be seen here</b></div> 
    </td> 
</tr> 
</table> 
</body> 
</html> 

的GetData頁

<?php 
$q=$_GET["q"]; 

$con = mysql_connect('localhost', 'dbuser', 'password'); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("unilever_unilever", $con); 

$sql="SELECT * FROM skudata WHERE packcode = '".$q."'"; 

$result = mysql_query($sql); 

while($row = mysql_fetch_array($result)) 
{  
    echo "<td>" . $row['Description'] . "</td>"; 
    echo "<td>" . $row['SellingUnits'] . "</td>"; 
    echo "<td>" . $row['EOTTPoints'] . "</td>"; 
    echo "<td>" . $row['Category'] . "</td>"; 
    echo "<td>" . $row['Grouping'] . "</td>"; 
} 


mysql_close($con); 
?> 

enter image description here

+1

嗨,我不得不''java'''''''''''''' – ianace 2012-01-13 08:48:56

+0

歡迎來到堆棧溢出! SO並不意味着成爲「爲我編寫代碼」的網站 - 如果您正在尋找這個網站,您應該聘請專家爲您做。如果您在處理此問題時遇到*特定技術問題,請隨時編輯相應的問題。 – 2012-01-13 08:51:11

+0

嗨@皮卡,我與你100%,它不是爲我寫的網站。我根據我在網上找到的例子,在這個問題中編寫了這段代碼。它運作良好我只有一個問題,我不能工作,因此我的問題。我已經完成了研究! – Smudger 2012-01-13 09:15:37

回答

1

的這裏的問題是,你已經使用了兩個想法,不太共同努力。此行:document.getElementById("txtHint").innerHTML=xmlhttp.responseText;將標記的內容設置爲「txtHint」,以便您的php腳本返回。這意味着,當你的PHP的回報,例如: <td>blah</td><td>blah</td><td>blah</td>
那麼你的頁面結束了:

<div id="txtHint"> 
    <td>blah</td> 
    <td>blah</td> 
    <td>blah</td> 
</div> 

你看到這裏發生了什麼?您不會在現有行中添加更多單元格,而是在您已有的單元格內創建另一個表格(並且該表格不好,沒有<table><tr>標籤...)。

爲了解決這個問題,ID爲「txtHint」更改元素的<tr>標記爲正在編輯的行,並更新了PHP返回該行的第一個單元格爲好,如:

HTML :

<table border=1> 
    <tr> 
     <td>SKU</td> 
     <td>Description</td> 
     <td>SU</td> 
     <td>Points</td> 
     <td>Category</td> 
     <td>Grouping</td> 
    </tr> 
    <tr id="txtHint"> 
      <td> 
       <select name="users" onchange="showUser(this.value)"> 
       <OPTION VALUE=0> 
       <?=$optionssku?> 
       </SELECT> 
      </td> 
     <td colspan="5">SKU Details will be seen here</td> 
    </tr> 

PHP:

while($row = mysql_fetch_array($result)) 
{ 
    echo "<td><select name='users' onchange='showUser(this.value)'><OPTION VALUE=0>"; 
    echo $optionssku; //Not sure where this variable comes from, so I'll leave getting it from wherever necessary to you 
    echo "</SELECT></td>"; 
    echo "<td>" . $row['Description'] . "</td>"; 
    echo "<td>" . $row['SellingUnits'] . "</td>"; 
    echo "<td>" . $row['EOTTPoints'] . "</td>"; 
    echo "<td>" . $row['Category'] . "</td>"; 
    echo "<td>" . $row['Grouping'] . "</td>"; 
} 

(代碼沒有測試,但它會是這樣的)。

當然有其他方法可以解決這個問題,幾乎可以肯定會有更好的方法,但這是我想到的第一個想法。

+0

非常感謝! – Smudger 2012-01-13 20:54:50

相關問題