使用Ajax从数据库

时间:2016-02-17 04:54:29

标签: javascript php html mysql ajax

我已经从互联网或本论坛的其他问题中学习,但仍然存在困惑,而且这段代码仍无效。

我尝试使用组合框菜单(1-7)使用onChange显示数据,如果0将为空

这适用于代码html& javascript

<html>
    <head>
        <script src="jquery-1.9.1.js"></script>
    </head>
    <script type="text/javascript">
    $(document).ready(function() {
        $('#menu').change(function(){
            if($(this).val != 0){
                var menu_id = $(this).val();
                $.ajax({
                    type:       "GET",
                    url:        "menu.php",
                    menu_id :   menu_id,
                    dataType:   "html",
                    success: function(response){
                        $("#data-menu").html(response);
                    }
                });
            }
        }).change();
    )};
    </script>

<body>
    <table>
        <tr>
            <td>Menu</td>
            <td>
                <select name="menu" id="menu">
                    <option value="0" selected='selected'>Select Menu </option>
                    <option value="1">Menu - 1 </option>
                    <option value="2">Menu - 2 </option>
                    <option value="3">Menu - 3 </option>
                    <option value="4">Menu - 4 </option>
                    <option value="5">Menu - 5 </option>
                    <option value="6">Menu - 6 </option>
                    <option value="7">Menu - 7 </option>    
                </select>   
            </td>   
        </tr>
    </table>    
    <div id="data-menu" align="center">
        <!-- Show Data In Here -->
    </div>
</body>

这适用于menu.php

<?php
$connection=mysql_connect("localhost","root","");
if(!$connection)
    die('Cant connect !! '. mysql_error());

mysql_select_db("BK",$connection);
$menu_id= $_GET['menu_id'];

$result=mysql_query("select * from show_product where menu = '" . $menu_id . "' order by show_product_id",$connection);

$no = 0; // for number

echo "<table border='1' >
    <tr>
        <td>Menu :</td>
        <td>".$menu_id."</td>
    </tr>
    <tr>
        <td>No</td>
        <td>Head Text</td>
        <td>Title Text</td>
        <td>Max Item</td>
        <td>Date</td>
        <td>Status</td>
    </tr>";

while($data = mysql_fetch_row($result))
{   
    echo "<tr>";
    $no+=1;
    echo "<td>".$no."</td>";                                    //no
    echo "<td>".$data["head_text"]."</td>";                 //head
    echo "<td>".$data["title_text"]."</td>";                    //title
    echo "<td>".$data["max_item"]."</td>";                      //max item
    echo "<td>".$data["date_added"]."</td>";                    //date
    echo "<td>".'<a href = "Edit_menu.php?id_menu='.$data["show_product_id"].'">EDIT</a>'."</td>";  // EDIT
    echo "</tr>";
}
echo "</table>";
?>

1 个答案:

答案 0 :(得分:3)

  

要通过ajax发送数据,请使用ajax config中的data密钥,data应保留object

要通过php <{1}}的用户key访问此数据

试试这个:

object

$(document).ready(function() { $('#menu').change(function() { if ($(this).val != 0) { var menu_id = $(this).val(); $.ajax({ type: "GET", url: "menu.php", data: { menu_id: menu_id }, dataType: "html", success: function(response) { $("#data-menu").html(response); } }); } }).change(); });可以menu_id

的形式访问

Fiddle here