$ _POST上的未定义索引:php上的ajax jquery

时间:2017-03-24 13:52:31

标签: php ajax

我正在使用jquery ajax进行填充下拉列表,我发现了这个错误

  

注意:未定义的索引:Categid in   第9行的C:\ xampp \ htdocs \ PopuTry \ popucon.php

这里是代码

<?php

$servername = "localhost";
$username = "root";
$password = "";
$database="maindb";


$names =$_POST['categid'];

// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
$output='';
$sql ="Select * From tbl_stocks Where Category = '".$names."'";
$result = mysqli_query($conn,$sql);
$output='<option value="">Select Menu</option>';
while($row=mysqli_fetch_array($result))
{
    $output .='<option value="'.$row["Menu_Number"].'">'.$row["Name"].'</option>';
}
echo $output;
?>

$names代码是抛出错误的地方,

这是我的HTML代码

    <?php
include('popucon.php');
function loadCateg()
{
    $servername = "localhost";
    $username = "root";
    $password = "";
    $database="maindb";

// Create connection
    $conn = mysqli_connect($servername, $username, $password, $database);

    $output ='';
    $sql = "select * from tbl_category";
    $result = mysqli_query($conn,$sql);
    while($row = mysqli_fetch_array($result))
    {
        $output .='<option value-"'.$row["cat_id"].'"">'.$row["Category"].'</option>';
    }
    return $output;
}
?>
<html>
<head>
    <title>Try1 Populate</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>

    <p>Select Category
    <select name="categ" id="categ">
        <option value="">Select Category</option>
        <?php echo loadCateg(); ?>
    </select></p>
    <p>Select Menu
        <select name="menu" id="menu">
            <option value="">Select Menu</option>

        </select></p>
</body>
</html>

<script>
    $(document).ready(function(){
        $('#categ').change(function(){
            var categ_id = $(this).val();
            $.ajax({
                url:"popucon.php",
                method:"POST",
                data:{categid:categ_id},
                dataType:"text"
                success: [ function (data)
                {
                    $('#menu').html(data);
                }
                ]
            });
        });
    });

</script>

data:{categid:categ_id},categid $ _POST声明的地方。

谁能帮助我吗?谢谢!

3 个答案:

答案 0 :(得分:0)

试试这段代码:

         $.ajax({
                url:"popucon.php",
                method:"POST",
                data:{categid:categ_id},
                success: function (data)
                {
                    $('#menu').html(data);
                }
            });

答案 1 :(得分:0)

在尝试使用之前先检查它是否存在。

$servername = "localhost";
$username = "root";
$password = "";
$database="maindb";

if( isset( $_POST['categid'] ) ){

    $names =$_POST['categid'];

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $database);
    $output='';
    $sql ="Select * From tbl_stocks Where Category = '".$names."'";
    $result = mysqli_query($conn,$sql);
    $output='<option value="">Select Menu</option>';
    while($row=mysqli_fetch_array($result))
    {
        $output .='<option value="'.$row["Menu_Number"].'">'.$row["Name"].'</option>';
    }
    echo $output;
}

答案 2 :(得分:0)

重写您的代码如下: -

 $(document).ready(function(){
    $.ajax({
        url:"popucon.php",
        method:"POST",
        data:{'categid':categ_id}, 
    })
    .done(function( data ) {
        $('#menu').html(data);
    });
});

在PHP文件中,选中issetempty

if(!empty($_POST['categid'])){
    // do stuff
}