Ajax不会将数据发送到php脚本

时间:2014-06-02 09:06:20

标签: php ajax

我想将id发送到php脚本。我想我的代码没问题,但是当我点击标签时我得到了这个错误:

Notice: Undefined index: id in C:\xampp\htdocs\domaci\cao.php on line 4

这是我的html + ajax代码:

<html>
    <head>
        <script type="text/javascript" src="jquery-1.11.1.js"></script>
        <script type="text/javascript" language="javascript">       
        $(document).ready(function(){
            $('a').click(function(){
                $.post($(this).attr('href'), { id : $(this).attr('id') } );
            });
        });
        </script>
    </head>
    <body>
        <a href="cao.php" id="Barselona" >Barselona</a>
        </br>
        <a href="cao.php" id="Beograd" >Beograd</a>
    </body>
</html>

这是cao.php:

<html>
    <body>
        <?php 
            $id = $_POST['id'];
            echo $id;
        ?>
    </body>
</html>

我真的需要这个去上班,请帮帮我:)。

5 个答案:

答案 0 :(得分:1)

你的$.post ajax很好。问题是,当单击锚点时,您不会阻止默认或返回false,以阻止浏览器重定向到cao.php。当它重定向到cao.php时,它是一个GET请求,因此触发未定义的索引通知,因为没有发布数据。

添加return false或preventDefault:

$('a').click(function(e){
    e.preventDefault();
    $.post($(this).attr('href'), { id : $(this).attr('id') } );
});

查看“网络”标签上的浏览器控制台(F12),查看ajax的响应。

答案 1 :(得分:0)

立即尝试。                    

$(document).ready(function(){
    $('a').click(function(){
        $.post($(this).attr('data-url'), { id : $(this).attr('id') } );
    });
});
</script>
</head>
<body>
<a href="#" data-url="cao.php" id="Barselona" >Barselona</a>
</br>
<a href="#" data-url="cao.php" id="Beograd" >Beograd</a>
</body>
</html>

答案 2 :(得分:0)

您的链接会重定向您,所以简单地执行此操作:

e.preventDefault();

最好有变量(将来),这里是EXAMPLE

答案 3 :(得分:0)

试试这个会对你有用:

<html>
        <head>
            <script type="text/javascript" src="jquery-1.11.1.js"></script>
            <script type="text/javascript" language="javascript">       
            $(document).ready(function(){
                $('a').click(function(){
                    $.post('cao.php', { id : $(this).attr('id') },function(data){
                        alert(data);
                     });
                });
            });
            </script>
        </head>
        <body>
            <a href="#" id="Barselona" >Barselona</a>
            </br>
            <a href="#" id="Beograd" >Beograd</a>
        </body>
    </html>

AT cao.php页面

<?php 
            $id = $_POST['id'];
            echo $id;die;
        ?>

答案 4 :(得分:0)

在cao.php&amp;中尝试print_r($ _ POST)检查值是否发布

$id=$_POST["id"];