我遇到的问题是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文件时,我甚至没有在控制台中获得回声。如果您有任何想法或问题,请与我们联系。谢谢。
答案 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函数