JQuery Ajax不向Php文件发送数据或运行成功函数

时间:2012-10-26 18:31:40

标签: php jquery ajax

我遇到的问题是jQuery Ajax函数没有将数据发送到相应的php文件,然后没有运行success函数。这是我的js:

function meetMember(empl_id) {

var member = {id: empl_id}

$.ajax({
    type: 'POST',
    url: 'php/infocheck.php', 
    data: member, 
    dataType: 'json',
    success: function(data) {
        alert('hi');
        console.log(data);
        $('#member-info').append(data); 
    }   
});
}

和infocheck.php代码:

<?php

ini_set('display_errors',1);
error_reporting(E_ALL);

include('db-info.php');

$id = $_POST['id'];

    $q = "SELECT * FROM team WHERE empl_id = $id LIMIT 1";
    $member = mysql_fetch_assoc(mysql_query($q));
    $met = $member['ifmet'];

    if($met != 1) {
        mysql_query("UPDATE team SET ifmet = 1 WHERE empl_id = $id");
    }

    echo "<img src=\"game/images/{$member['image']}\" alt='' style='padding:2px 10px 0px 0px; float:left;' />";
    echo "<h3>{$member['name']}</h3>";
    echo "<h4><em>{$member['title']}</em><h4>";
    echo "<p>{$member['description']}</p>";

?>

当我在浏览器中查看php文件时,我收到错误:

“注意:第8行/Applications/MAMP/htdocs/Development/ETL24/php/infocheck.php中的未定义索引:id

警告:mysql_fetch_assoc()期望参数1是资源,第12行的/Applications/MAMP/htdocs/Development/ETL24/php/infocheck.php中给出了布尔值“

成功功能中的console.log和alert不会运行。当我查看php文件时,我甚至没有在控制台中获得回声。如果您有任何想法或问题,请与我们联系。谢谢。

3 个答案:

答案 0 :(得分:1)

使用dataType: 'html'文件返回HTML

当您在浏览器上打开文件(GET)时,您会收到错误,因为它需要通过id传递POST

如果您要调试它,请更改为type: GET并在网址上附加?id=1

答案 1 :(得分:0)

更改行

var member = {id: empl_id}

var member = "id="+empl_id;

  var member = {"id": empl_id}

答案 2 :(得分:0)

首先,不再维护mysql函数,考虑更改为mysqli函数。

这段代码:

var member = {id: empl_id}

应该写

var member = {"id": empl_id}; // notice the semi-colon too

由于你没有传递和“id”参数,你的$ id变量为null,因为$ _POST ['id']实际上是空的。这解释了这个警告:

Notice: Undefined index: id in /Applications/MAMP/htdocs/Development/ETL24/php/infocheck.php on line 8

您实际上是将$ id设置为null。

这样,您的查询就变成了

SELECT * FROM team WHERE empl_id = LIMIT 1

然后使你的mysql_query返回false而不是resource,这就是这个错误的含义:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /Applications/MAMP/htdocs/Development/ETL24/php/infocheck.php on line 12"

在摘要中,只需将变量更改为JSON并开始使用mysqli函数