[英]JQuery Post Not Passing Data Values to Php File
我正在使用jQuery函数$ .post将一些值传递到php文件,然后该文件使用这些值来引用mySQL数据库并在发布成功函数中解析出结果值。 但是由于某种原因,当我尝试使用$ _POST标记获取php文件中的数据时,我注意到索引未定义。 这是我的js代码:
var curX = 2;
var curY = 6;
function move(moveX, moveY) {
var position = {
x: curX + moveX,
y: curY + moveY
}
$.post('php/tilecheck.php', position, function(data) {
//console.log(data);
curX += moveX;
curY += moveY;
var n = data.split("\"");
boundary(n[3], n[1]);
boundary(n[7], n[5]);
boundary(n[11], n[9]);
boundary(n[15], n[13]);
/*boundary(data.left,'left');
boundary(data.right, 'right');
boundary(data.top, 'top');
boundary(data.bottom, 'bottom');*/
})
}
function boundary(value, pos) {
if(value == 1){
$("#a" + pos).css('display', 'none');
}
else {
$("#a" + pos).css('display', '');
}
}
和它所引用的php文件:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
include('db-info.php');
$x = $_POST['x'];
$y = $_POST['y'];
if(!empty($_POST)) {
$q = "SELECT * FROM tiles WHERE xpos = ".($x - 1)." AND ypos = $y LIMIT 1";
$lefttile = mysql_fetch_assoc(mysql_query($q));
$q = "SELECT * FROM tiles WHERE xpos = ".($x + 1)." AND ypos = $y LIMIT 1";
$righttile = mysql_fetch_assoc(mysql_query($q));
$q = "SELECT * FROM tiles WHERE xpos = $x AND ypos = ".($y - 1)." LIMIT 1";
$toptile = mysql_fetch_assoc(mysql_query($q));
$q = "SELECT * FROM tiles WHERE xpos = $x AND ypos = ".($y + 1)." LIMIT 1";
$bottomtile = mysql_fetch_assoc(mysql_query($q));
$json = array(
"left" => $lefttile['bound'], "right" => $righttile['bound'],
"top" => $toptile['bound'], "bottom" => $bottomtile['bound']
);
$output = json_encode($json);
echo $output;
}
else
echo "No value";
?>
奇怪的是,即使php中的值未定义,它仍会在数组中输出正确的数据,这已由控制台日志确认。 但是,要访问数组中的这些值,我必须使用对函数boundary()的固定调用,而注释掉的代码不起作用。 如果您有任何想法或问题,请告诉我。 谢谢。
我的一次尝试..您拥有JSON responsee ..因此您可以使用它。
!! 在LOOP之前需要添加一项检查,以查看响应者是否成功。
$.ajax({
url: 'php/tilecheck.php',
data: position,
type: 'POST',
dataType: 'json',
success: function(data) {
$.each(data, function(key,value){
if(value == 1){
$("#a" + key).css('display', 'none');
}
else {
$("#a" + key).css('display', '');
}
});
}
});
检查您从PHP的jQuery中获得了什么:
print_r($_POST);
并检查“ x”和“ y”的正确命名
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.