0

重複の可能性:
前の選択に基づいてドロップダウンにデータを入力

さて、これが基本的に私がやろうとしていることです。最初のステートメントは、サーバー上のテーブルのクエリによって入力されます。2番目には、エリート、コア、レイダーの3つの値があります。AJAXとPHPを使用して、誰かが最初の名前から名前を選択すると、2番目の名前が常にその人のデータベースにある値に変更されるようにしようとしています。ただし、これは、使用されていないスイッチが発生した場合に備えて選択したままにする必要があります(この場合、2番目の値を変更する必要があります)。

<?php
echo "<select name='playername' onchange='filldata(this.value)'>";
require("/home/a9299818/public_html/DKPTools/connect.php");
$query1 = mysql_query("SELECT player.id, player.primarytoon, player.rank, IFNULL( SUM(dkp.dkp ) , 0 ) 
FROM player
LEFT OUTER JOIN dkp ON player.id = dkp.player_id
GROUP BY player.id
ORDER BY player.id");
while ($row = mysql_fetch_array($query1, MYSQL_NUM)){printf("<option value='%s'>%s</option>",$row[0],$row[1]);}
echo "</select>";
echo "<select name='rank'><option value='1'>Elite</option><option value='2'>Core</option><option value='3'>Raider</option>";
?>

このPHPは機能し、両方の選択を正しく入力します。しかし、私はAJAXのコーディングに完全に迷いました。これは、ページを更新せずに、rank.valueをデータベースが言うものに変更する必要があります。

4

1 に答える 1

0

2つの可能性があります。

1つ目は、jQueryとAjaxを使用することです。

function filldata(value) {
    $.ajax({
        type: "GET",
        url: "URL_TO_PHP_FILE",
        data: "playerID=" + value,
        success: function(result) {
            $("select[name=rank]").val(result);
        }
    });
}

URL_TO_PHP_FILEは、指定されたplayerIDを持つプレーヤーのデータベースからrank_idを取得するPHPファイルへのURLです。PHPファイルでは、rank_idのみをエコーする必要があります。したがって、PHPファイルは次のようになります。

<?php ## THE PHP FILE ##
require("/home/a9299818/public_html/DKPTools/connect.php");
$query1 = mysql_query("SELECT player.rank WHERE player.id = ".$_GET['playerID']);
$row = mysql_fetch_array($query1, MYSQL_NUM);
echo $row['rank'];
## END OF PHP FILE ## ?>

秒の可能性は、最初の選択のオプション値が「player_id」ではなく「rank_id」と等しいことを確認することです。したがって、javascript関数を記述できます。

function filldata(value) {
    $("select[name=rank]").val(value);
}
于 2012-12-19T11:24:21.430 に答える