2012-01-13 20 views
-1

mysqlデータベースのドロップダウンリストの選択に基づいて、mysqlデータベースのデータを表示するPHPページがあります。これは明らかにJava Scriptを利用しています。htmlテーブルのリモートphp(mysql)からデータを取り出して表示

phpとmysqlの統合は完全に機能していますが、データの表示方法を変更する必要があります。

現在、返されたmysqlデータが1つのテーブルセルに表示されています。返される各mysqlフィールドを、それぞれのテーブルセルに表示する必要があります。

出力の写真を追加しました。それぞれの表のセルに1つずつ表示する必要があります。

私は自分の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> 

函ページ

<?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'を' javascript'に再タグ付けしなければなりませんでした。 – ianace

+0

ようこそ!それはあなたが探しているものなら、おそらくあなたのためにそれをする専門家を雇うべきです。問題に取り組んでいる*特定の*技術的な質問がある場合は、それに応じて質問を自由に編集してください。 –

+0

こんにちは@Pekka、私はそれが私のサイトのためにそれを書くことであなたと100%です。私はネット上で見つけた例に基づいてこのコードを質問に書いた。それはうまくいきます私はちょうど私が働くことができない1つの問題を持っている、したがって私の質問。私は研究を行った! – Smudger

答えて

1

は、ここでの問題は、あなたが非常に一緒に動作しない2つのアイデアを使用していたということです。この行:document.getElementById("txtHint").innerHTML=xmlhttp.responseText;は、idが "txtHint"のタグの内容をPHPスクリプトが返す内容に設定しています。 <td>blah</td><td>blah</td><td>blah</td>
、あなたのページがで終わる:これは、ときにPHP戻り、例えばすることを意味し

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

あなたはここで何が起こっているか見ていますか?既存の行にセルを追加していない場合は、既にセル内に別のテーブルを作成しています(それには悪いものがあり、<table>または<tr>タグなし)。

HTML:例えば、これを回避編集している行のための<tr>タグにidを持つ「txtHintを」要素を変更し、同様にその行の最初のセルを返すようにPHPを更新するには

<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

関連する問題