0

我正在尝试将ajax变量传递给php页面。

在这里,我正在提醒价值,它正在显示价值。但是当我将值发送到php页面时,它没有获取值并执行删除操作。

这是我尝试过的,

阿贾克斯代码:

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;
?>

如何解决这个问题?

4

2 回答 2

0

var_dump($_GET["q"]);在你的 PHP 文件中做一个。无论它产生什么,它都应该出现在你的#txtHint元素中(至少你应该得到null. 如果你没有得到任何东西,那么你的 PHP 文件的路径可能是错误的,所以尝试使用绝对 URL 以查看它是否有效。

于 2013-08-21T12:11:11.097 回答
0

您正在使用 AJAX 发送 HTTP GET 请求,并使用您在 JavaScript 中生成的值作为参数发送“q”。

就像有人执行这个 url http://:/my-app?q=the%20value

因此,当此请求到达您的 PHP 时,您应该能够像往常一样处理 Get 请求和 Get 参数,没有区别。此外,在通过 AJAX 从 JavaScript 发送值时,请尝试对您的 URI 值进行编码,以便它们在 URL 中正确转义。

于 2013-08-21T11:51:14.533 回答