将变量从jquery发送到php时未定义的索引错误

时间:2015-04-27 03:48:22

标签: php jquery html ajax twitter-bootstrap

改编自这个问题:Passing Jquery variable to php within a modal

我已经设置了,它应该正常工作,但我得到了未定义的索引错误。

在while循环中:

print '<li>';
        print '<a class="btn btn-default" data-toggle="modal" data-id='.$row['id'].' data-target=".bs-example-modal-lg"><img src="'.$row["image"].'" /></a><br>';
        print '<a class="btn btn-default" data-toggle="modal" data-id='.$row['id'].' data-target=".bs-example-modal-lg"><h4>'.$row['name'].'</h4></a>';
print '</li>';

我的所有jquery,包括ajax代码:

 $(document).ready(function() {
            $("body").css("display", "none");
            $("body").fadeIn(1000);
            $("a.transition").click(function(event){
                event.preventDefault();
                linkLocation = this.href;
                $("body").fadeOut(1000, redirectPage);      
            });
            function redirectPage() {
                window.location = linkLocation;
            }
        }); 
$(document).on("click", ".btn", function (e) {
            e.preventDefault();
            alert (id);
            var id = $(this).data('id');
            alert (id);
            $("h4.modal-title").text(id);

            //$($(this).attr('href')).modal('show');    
            $.post('food.php',{id:id},function(data){
                alert(data);
                alert (id) // <--THIS ALERT WORKS TOO
            });
        });

php:

<?php
        $id = $_POST["id"];
        print '<h4>'.$id.'</h4>'

    ?>

我在$id = $_POST["id"];上一直收到索引未定义错误。

我似乎无法弄清楚为什么,我已经将我的代码调整为这么多不同的方法,但它们都不起作用。

第一个警报显示,但第二个警报不显示。文本确实放在<div>内,但不会发送到变量。所有这些都在一个文件中。 我有一种感觉,我的ajax代码遗漏了一些东西。

Var转储显示:

array (size=0)
   empty

2 个答案:

答案 0 :(得分:0)

使用以下php代码再试一次

<?php
    if( isset( $_POST["id"] ) ) 
        $id = $_POST["id"];
    else
        $id = 'Error: id not exist';
    print '<h4>'.$id.'</h4>';
    die();
?>

答案 1 :(得分:0)

您已经假设已发布数据。 尝试isset

if(isset($_POST['id']))
{
     $id = $_POST["id"];
  echo $id;
    }