无法将jquery发布到php上

时间:2015-07-07 09:56:05

标签: php jquery

我目前在PHP页面上的jQuery for MySQLi SELECT上发布变量时遇到了一些麻烦。

jQuery代码:

$("#carta1").click(function()
{
    cartaId = document.getElementById("carta1").value;
    console.log(cartaId);

    ajaxGetResults = $.ajax({
        context: this,
        type: "POST",
        url: "darResposta.php",
        data: {'cartaId' : cartaId},
        cache: false,
        dataType: "json"
    })
    .done(function(data){
        $('#3').html(data);
        console.log("Avançou para a terceira parte");
        $("#2").hide();
        $("#3").show();
    })
    .fail(function(){
        console.log('Erro ao buscar dados');
        $("#2").hide();
        $("#3").show();
        $('#3').html("Deu erro");
    });
});

PHP代码:

if(!$conn)
{
    echo "Falhou a ligação à base de dados";
}
else
{
    if(isset($_POST['cartaId']))
    {
        $cartaId = $_POST['cartaId'];
        $res = mysqli_query($conn,"
            SELECT cartaNome, cartaDescricao
            FROM tarot_cartas
            WHERE cartaId = ".$cartaId
        );
        $data = array();
        while($row = mysqli_fetch_assoc($res))
        {
            $data=$row;
        }
        echo json_encode($data);
    }
}

尝试了几种解决此问题的方法,例如将$ cartaId置于if语句之外,并使用直接$ _POST,但没有任何反应。

如果你能解释一下这个问题,我将不胜感激。

感谢您花时间阅读并提出解决方案。

3 个答案:

答案 0 :(得分:2)

使用下面的代码

  data: { 'cartaId' : cartaId },

而不是

   data: {"data":JSON.stringify({'cartaId' : JSON.stringify(this)})},

答案 1 :(得分:1)

Solution:
1.Remove this

  data: {"data":JSON.stringify({'cartaId' : JSON.stringify(this)})},

2.Replace This one

  data: { cartaId: cartaId }

希望它有效......

答案 2 :(得分:1)

您拥有的jq会将变量发布到网址。 要调试,如果发送请求,应首先检查控制台(我使用firebug)进行mozilla)。使用firebug,您可以看到发送的POST变量的名称。

在此之后,您应该通过执行

来检查服务器端收到的值
  

的var_dump($ _ POST);

最后在查询中获取正确的变量。您还可以通过查看日志文件来调试查询,或者根据您是否使用框架来调试查询:

  

DB-> last_query();