Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax不向php发送信息_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript Ajax不向php发送信息

Javascript Ajax不向php发送信息,javascript,php,jquery,ajax,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

当我点击一个按钮时,我试图从我的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>
服务器端的php就是这样简单的东西:

handler.php:

    <?php

    echo('Ajax successful!');

    ?>

您尚未关闭文档准备功能:

    $(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");
              }
            });

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

应该是


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

首先,最好使用更新的jquery版本

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

data:JSON.stringify({taskid = 1})
json应该是

{taskid : 1}
使用冒号,而不是等号。不确定您的jQuery版本是否正确,但通常数据已经可以作为json对象附加,因此整行代码应该可以这样工作:

data: {taskid : 1},
然后,数据在PHP页面中显示为POST数据。请注意,live()函数从1.7开始就不推荐使用。你可以用

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

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

您需要做的第一个重要更改是使用
$.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;
    }
?>


退出非常重要。

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

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

你的问题的真正答案已经得到了回答

你收到错误警报了吗?同时尝试将
响应
success
回调转储到控制台,以查看输出的内容运行代码时得到的响应是什么?你的回答中有没有“错误Ajaxing”呢?总是检查你的控制台有没有错误。你抢先了我一步!另外,应该使用
$.on
而不是
$.live
,因为
live
已被弃用。@Rutwick您是对的,但他使用的是jquery旧版本。因此,反对不是问题所在。
header("Content-Type: application/json"); //Above all HTML and returns