我目前在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,但没有任何反应。
如果你能解释一下这个问题,我将不胜感激。
感谢您花时间阅读并提出解决方案。
答案 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();