0

我遇到了 jQuery Ajax 函数没有将数据发送到相应的 php 文件,然后没有运行成功函数的问题。这是我的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 中给出的布尔值”

success 函数中的 console.log 和 alert 不运行。当我查看 php 文件时,我什至没有在控制台中得到回声。请让我知道您可能有的任何想法或问题。谢谢你。

4

3 回答 3

1

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

当您在 browser() 上打开文件时,GET您会收到一个错误,因为它需要id通过 POST

如果要调试它,请更改为type: GETurl append?id=1

于 2012-10-26T18:43:09.913 回答
0

换行

var member = {id: empl_id}

var member = "id="+empl_id;

或者

  var member = {"id": empl_id}
于 2012-10-26T18:32:55.097 回答
0

首先mysql的功能已经不维护了,考虑换成mysqli的功能。

这段代码:

var member = {id: empl_id}

应该写

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

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

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

您实际上将 $id 设置为空。

因此,您的查询变成了类似

SELECT * FROM team WHERE empl_id = LIMIT 1

然后使您的 mysql_query 返回 false 而不是资源,这就是此错误的含义:

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 函数

于 2012-10-26T18:44:16.077 回答