0

ドロップダウンの値を変更したときにデータベースからデータを取得することは可能ですか?ドロップダウンの値に対応するデータをプルアップしてテキスト領域に表示したいのですが、試したコードを取得しました私が望むものにそれを機能させる方法がわからないだけです。

ページに最初にドロップダウンを表示し、値を選択した後、ページを更新せずにテキスト領域にデータを表示するようにしたいのですが、コードは次のとおりです。

<div id="mainContent">
<table width="619" border="0" align="center">
<td align="center"><form id="form1" name="form1" method="post" action="" >
<fieldset>
<legend><strong>EA</strong></legend>
<p> 
<select name="ea_name" id="ea_name">
<option value="" selected="selected">Please select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</p>
</fieldset>
</form></td>
</table>

<div id="results"></div>
</div>

「onchange」でできると思っていますが、実装方法がわからないだけでなく、結果のデータをフィールドセット内のテキスト領域にエコーしたいと考えています。

データを取得してテキスト領域に表示する、私が試したコードは次のとおりです。

<?php
require 'include/DB_Open.php';

$ea_name = $_POST['ea_name'];

$sql="SELECT * FROM ea_error WHERE ea_name = '" . $ea_name . "'";

$myData = mysql_query($sql);

//to count if there are any results
$numrow = mysql_num_rows($myData);

if($numrow == 0)
{
    echo "No results found.";
}
else
{
echo "<fieldset><legend><strong>Information</strong></legend><p>
<table width="auto" height="172" border="0">
<tr><th scope="row">Error</th></tr>
<tr><th scope="row">Resolution</th></tr>
<tr><th scope="row">Contact/s</th></tr>;"

while($info = mysql_fetch_array($myData)) 
{
echo "<form action='retrieve.php' method='post'>";

echo"<tr>"; 
echo  "<td align='center'>" . $info['error'] . "<input type=hidden name=error value=" . $info['error'] . " </td>";
echo  "<td align='center'>" . $info['resolution'] . "<input type=hidden name=resolution value=" . $info['resolution'] . " size='11' maxlength='11' /> </td>"; 
echo  "<td align='center'>" . $info['contacts'] . "<input type=hidden name=contacts value=" . $info['contacts'] . "' /> </td>"; 
echo "</tr>"; 
echo "</form>";
}
}
echo "</fieldset>"; 

include 'include/DB_Close.php';
?>

更新されたコード:

<?php
require 'include/DB_Open.php';

$ea_name = $_POST['ea_name'];

$sql="SELECT * FROM ea_error WHERE ea_name = '" . $ea_name . "'";

$myData = mysql_query($sql);

//to count if there are any results
$numrow = mysql_num_rows($myData);

if($numrow == 0)
{
    echo "No results found.";
}
else
{
echo '<fieldset><legend><strong>Information</strong></legend><p>
<table width="auto" height="172" border="0">
<tr><th>Error</th></tr>
<tr><th>Resolution</th></tr>
<tr><th>Contact/s</th></tr>';

while($info = mysql_fetch_array($myData)) 
{
echo "<form action='retrieve.php' method='post'>";

echo"<tr>"; 
echo  "<td align='center'>" . $info['error'] . "<input type=hidden name=error value=" . $info['error'] . " </td>";
echo  "<td align='center'>" . $info['resolution'] . "<input type=hidden name=resolution value=" . $info['resolution'] . " size='11' maxlength='11' /> </td>"; 
echo  "<td align='center'>" . $info['contacts'] . "<input type=hidden name=contacts value=" . $info['contacts'] . "' /> </td>"; 
echo "</tr>"; 
echo "</form>";
}
}
echo "</fieldset>"; 

include 'include/DB_Close.php';
?>
4

2 に答える 2

4

これでうまくいくはずです。この JavaScript を、ページの先頭にあるスクリプト タグ内、jQuery インクルードの後に​​配置するか、別の js ファイルに入れて jQuery の後にインクルードするだけです...

$(function() {  //  document.ready
    $("#ea_name").on("change", function() {
        $.ajax({
            url: "phpfile.php",
            type: "POST",
            data: {
                ea_name: $(this).val()
            },
            success: function(data) {
                $("#results").html(data);
            }
        });
    });
});

ドロップダウンの変更イベントにイベント ハンドラーを割り当てます。これがトリガーされると、php ファイルに ajax リクエストが送信され (URL に正しいファイル名を入力することを忘れないでください!)、html が返されます。これは、結果の div にプッシュされます。

注:あなたの php ファイルにあるかもしれないし、ないかもしれないタイプミスを修正しました。クエリを作成する行の最後で、" を閉じていませんでした。念のため、実際のファイルからのコピー アンド ペーストです。

于 2013-07-17T17:01:16.490 に答える
0

post パラメータ ファイルとして ea_name を使用して、php ファイルへの ajax 呼び出しを実装する必要があります。特定のdivに応答を配置します。

于 2013-07-17T17:03:10.073 に答える