簡體   English   中英

jQuery發布不將數據值傳遞到Php文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM