Ajax没有向php发送信息

时间:2015-07-30 06:08:09

标签: javascript php jquery ajax

我正在尝试从单击按钮时从我的php代码中获取一些信息,但它没有连接到php。

首页显示在index.php中 的index.php:

    <!DOCTYPE html>
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="mystyle.css">
    <script type="text/javascript" src="jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="functions.js"></script>

    <title>Account Panel</title>
    </head>


    <div "getInfos">
    <h2>In this section you can get your inforrmation</h2>
    <button id="getNameBtn">Get Your Name!</button>
    <span id="getNameSpan"> something must come here</span>

    </div>
    </body>
    </html>

javascript代码和ajax在 functions.js:

    $(document).ready(function(){
    $("#getNameBtn").live('click', function() {
    $.ajax({ 
        type: 'POST',
        url: 'handler.php',
        data:JSON.stringify({taskid = 1}),
        headers: {
            'content-type': 'application/json'
        },

        success: function(response) {
            document.getElementById('getNameSpan').innerHTML = response;
        },
        error: function() {
            alert("Error Ajaxing");
        }

        });

   });
在服务器端的

和php是一个简单的事情:

handler.php:

    <?php

    echo('Ajax successful!');

    ?>

5 个答案:

答案 0 :(得分:3)

您尚未关闭文档就绪功能:

    $(document).ready(function(){
        $("#getNameBtn").live('click', function() {
            $.ajax({ 
              type: 'POST',
              url: 'handler.php',
              data:JSON.stringify({taskid = 1}),
              headers: {
                'content-type': 'application/json'
              },

              success: function(response) {
                document.getElementById('getNameSpan').innerHTML = response;
              },
              error: function() {
                alert("Error Ajaxing");
              }
            });

       });
});

答案 1 :(得分:2)

data:JSON.stringify({taskid = 1}),

坚持

data:JSON.stringify({taskid: 1}),

答案 2 :(得分:1)

首先,您应该更好地使用较新的jquery版本。

您的代码中至少有一个错误:

data:JSON.stringify({taskid = 1})

json应该阅读

{taskid : 1}

使用冒号,而不是等号。不确定你的jQuery版本是否属实,但通常数据可以作为json对象附加,所以整行应该如此:

data: {taskid : 1},

然后数据在PHP页面中显示为POST数据。请注意,自1.7以来,不推荐使用live()函数。你可以使用

$("#getNameBtn").click(function(){...});

代替。此外,我认为您的请求中不需要标题。

答案 3 :(得分:0)

您需要做的第一个重要更改是使用$.on而不是$.live,因为后者已被弃用。如果handler.php文件与JS / HTML文件处于同一级别,则应检查另一件事。可能是您的代码无法访问该文件。您可以尝试以下方法:

$(document).ready(function(){
    $("#getNameBtn").on('click', function() {
        $.ajax({ 
            type: 'POST',
            url: 'handler.php',
            data: { call: 'myAjax', taskid : 1 },
            headers: {
                'content-type': 'application/json'
            },
            success: function(response) {
                $('#getNameSpan').html(response);
            },
            error: function() {
                alert("Error Ajaxing");
            }
        });
    });
});

在PHP文件中,您可以检查call密钥:

<?php
    if(isset($_POST) && $_POST['call'] == 'myAjax') {
        echo $_POST['taskid'];
        exit;
    }
?>

exit非常重要。

答案 4 :(得分:0)

在返回JSON的PHP文件中,您还应将标头设置为JSON。

header("Content-Type: application/json"); //Above all HTML and returns

问题的真正答案已经得到解答。