我正在尝试将 ajax 变量传递给 php 页面。
这里我正在警告值,它显示了值。但是当我将值发送到 php 页面时,它没有获取值并执行删除操作。
这是我尝试过的,
ajax代码:
function remove()
{
if(a=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","theaterdel.php?q="+a,true);
alert(a)
xmlhttp.send();
}
php代码:
<?php
$q = strtolower(trim($_GET["q"]));
try
{
$dbh = new PDO('mysql:dbname=theaterdb;host=localhost','tiger','tiger');
}
catch (PDOException $e)
{
echo 'Connection failed: ' . $e->getMessage();
}
$sql = 'DELETE FROM theater WHERE LOWER(address) = :q';
$sth = $dbh->prepare($sql);
$sth->bindValue(':q', $q);
$sth->execute();
$dbh = null;
?>
如何解决此问题?
答案 0 :(得分:0)
您正在使用AJAX发送HTTP GET请求,并使用您在JavaScript中生成的值发送“q”作为参数。
就像有人执行此网址http://:/ my-app?q =%20value
因此,当此请求到达您的PHP时,您应该能够像往常一样处理Get requests和Get参数,没有区别。此外,在通过AJAX从JavaScript发送值时,尝试对URI值进行编码,以便在URL中正确地转发它们。
答案 1 :(得分:0)
在PHP文件中执行var_dump($_GET["q"]);
。
无论它产生什么,它都应该出现在你的#txtHint
元素中(至少你应该得到null
。
如果你没有得到任何东西,那么你可能错误地找到了PHP文件的路径,所以请尝试使用绝对URL来查看它是否有效。