如何在php中访问ajax变量

时间:2013-08-21 11:29:13

标签: php javascript html ajax

我正在尝试将 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;
?>

如何解决此问题?

2 个答案:

答案 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来查看它是否有效。