1

ユーザーがドロップダウン リストからオプションを選択したときに実行される MySQL クエリを作成しています。

私が望むのは、ドロップダウンリストオプションを選択すると、そのオプションに関連するクエリが、同じページで ajax/javascript を使用して自動的に実行されることです。同じページにhtmlとphpの両方のコードがあるためです。

以前は、ドロップダウン リストにフォーム送信オプションを使用していましたが、ドロップダウン オプションの数が結果をフィルタリングするために 5 つ以上あるため、クエリの実装が複雑になりました。そのため、各ドロップダウンの結果を個別に絞り込みたいのです。

どんな助けでも大歓迎です。前もって感謝します!

ドロップダウン リストの HTML コードは次のとおりです。

<p>
<label for="experience">Experience :</label>
<select id="experience" name="experience">
    <option value="" selected="selected">All</option>
    <option value="Fresher">Fresher</option>
    <option value="Experienced">Experienced</option>
</select>
</p>

関連するクエリを実行するための PHP コードは次のとおりです。

<?php
if (isset($_GET['exp'])) {

    switch ($_GET['exp']) {

        case 'Experienced':
        $query = "SELECT job_seekers.ID, job_seekers.Name, job_seekers.Skills, job_seekers.Experience FROM job_seekers where job_seekers.Experience!='Fresher'";
        break;

    case 'Fresher':
        $query = "SELECT job_seekers.ID, job_seekers.Name, job_seekers.Skills, job_seekers.Experience FROM job_seekers where job_seekers.Experience='Fresher'";
        break;

    default:
        $query = "SELECT job_seekers.ID, job_seekers.Name, job_seekers.Skills, job_seekers.Experience FROM job_seekers";

    }
}
$result = mysql_query($query) or die(mysql_error());

echo "<ul class=\"candidates\">";

while($row = mysql_fetch_row($result))
{
    echo "<li>";
    echo "<p> <b>ID:</b> <u>$row[0]</u> </p>";
    echo "<p> <b>Name :</b> $row[1] </p>";
    echo "<p> <b>Key Skills:</b> $row[2] </p>";
        echo "<p> <b>Experience:</b> $row[3] </p>";
    echo "</li>";
}

    echo "</ul>";               

?>
4

3 に答える 3

4

AJAXでphpスクリプトを呼び出したい場合は、Jqueryが提供する$.ajaxを使用する必要があります。

http://api.jquery.com

だからあなたはそれを次のように使うことができます:

$.ajax({
    url: 'ajax.php',
    data: {
        //put parameters here such as which dropdown you are using
    },
    success: function(response) {
        //javascript and jquery code to edit your lists goes in here.
        //use response to refer to what was echoed in your php script
    }
});

このようにして、動的なドロップダウンと必要な洗練された結果が得られます

于 2012-08-31T07:29:36.430 に答える
0

同じページでPHPパーツを再実行することはできません。むしろ、Ajaxリクエストを使用してアクションを実行します。

于 2012-08-31T07:40:43.667 に答える
0
<?php
if (isset($_GET['experience'])) {

    echo $_GET['experience'];
        /* do mysql operations and echo the result here */
    exit;
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">
function myFunction(value)
{
    if(value!="All")
    {
        $.ajax(
        {
            type: "GET",
            url: '<?php echo $_SERVER['PHP_SELF']; ?>',
            data: { experience: value},
            success: function(data) {
                $('#resultDiv').html(data);
        }
    });
    }
    else
    {
        $('#resultDiv').html("Please select a value.");
    }
}
</script>
</head>

<body>
<p>
<label for="experience">Experience :</label>
<select id="experience" name="experience" onChange="myFunction(this.value)">
    <option value="All" selected="selected">All</option>
    <option value="Fresher">Fresher</option>
    <option value="Experienced">Experienced</option>
</select>
</p>
<div id="resultDiv">
Please select a value.
</div>
</body>
</html>
于 2012-08-31T09:17:17.180 に答える