动态变量ondown下拉菜单

时间:2012-05-03 06:48:08

标签: php mysql html

a http://img62.imageshack.us/img62/5582/20704606.jpg

上面的下拉菜单有3个值;

i)   Staf DC   
ii)  Admin
iii) Staf DT

“所有者”列值(hafiz)来自数据库。下拉列表中的每个值都具有不同的“所有者”值。我希望它能像这样完成;

如果选择了Staf DC,它将运行此查询:

$query = "SELECT * FROM owner where type='Staf DC'";

如果选择了Admin,它将运行此查询:

 $query = "SELECT * FROM owner where type='Admin'";

此外,表格中“所有者”列的值应自动更改,而不刷新页面。有人能告诉我一个如何做到这一点的例子吗?

2 个答案:

答案 0 :(得分:4)

下面的代码在下拉列表的onchange中调用jquery函数。 Jquery函数将选定的下拉值传递给getdata.php,处理它并回显所有者名称。然后所有者名称显示在标签框中。

下拉代码

echo '<table><tr><td>ModelNo.</td><td>';
echo "<select id='typeval' onchange='changeOwner();'>";
echo "<option value='Staf DC'>Staf DC</option>";
echo '</select></td>';
echo "<td><label id='own'>hafiz</label></td></tr></table>";

jquery代码

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function changeOwner()
{
    var selname = $("#typeval option:selected").val();  
    $.ajax({ url: "getdata.php",

        data: {"selname":selname},

        type: 'post',

        success: function(output) {
            $("#own").html(output);
        }

    });
}
</script>

php code(getdata.php);

$selname = $_POST['selname'];
$query = "SELECT * FROM owner where type='$selname'";
$res = mysql_query($query);
$rows = mysql_fetch_array($res);
echo $rows['owner']; //assumed that the column name in db is owner

答案 1 :(得分:0)

如果您不想刷新整个页面,则需要使用一些Javascript / Ajax。 JQuery允许使用.post()方法轻松执行您需要的任务。

首先将JQuery文件添加到HTML标头

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">

然后根据您的请求创建一个.php文件(例如:update_owner.php):

<?php
    // 1. Connect to your SQL database
    // ...

    // 2. Get the type
    $type = $_POST['type'];

    // 3. Perform your query
    $results = mysql_query("SELECT * FROM owner where type=".$type);

    // 4. Get the only result you want (the first row)
    $row = mysql_fetch_array( $results );

    // 5. Return the result in json format (assuming that the name
    echo json_encode(array("responseCode" => 200, "row" => $row));

然后添加一些javascript(使用JQuery):

$("select#type").change(function() {
    // Get the value of your input field
    var type = $(this).val();

    // Set the URL
    var url = 'update_owner.php';

    // Start send the post request
    $.post(url,
        function(data){

            // The response is in the data variable
            if (data.responseCode == 200) {
                // Write the name in the right cell (with #owner id)
                $("#owner").html( data.row.name );
            }
            else {
                // Bad request
            }
        },"json"
    ); // Make sure the the response is in json format
    return false;
});

应该这样做

PS:我为我糟糕的英语道歉......我是法国人