未收到$ .get []变量

时间:2011-10-15 05:00:31

标签: php jquery ajax

我尝试实现以下代码:

这是EditSet.php文件:

   <?php

function sanitizeString($var)
  {
   $var = strip_tags($var);
$var = htmlentities($var);
$var = stripslashes($var);
return mysql_real_escape_string($var);
  }
 $selectedset = sanitizeString($_GET['selectedset']);

   ?>
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title></title>
 <script type="text/javascript">
  $(document).ready(function() {


 $("#viewresult input:button").click(function () { 


     $.get("EditSet.php", "selectedset=Ceremony", function(){

 <?php

    $query =  "select imgid from imageinfo where setname='$selectedset' ORDER BY id DESC limit 1";
    $result = mysql_query($query);
    $row = mysql_fetch_object($result);
               $imgid = $row->imgid;
             echo "$(\"#setimg\").fadeIn(\"slow\").html('<img src=\"edituploads/$imgid \"/>'); ";

     ?>                        
    });



        }); 
     }); 
  </script>
</head>
<body>
 <div style="float:left;border:1px solid  #aaa;"id="setimg"><img src="item.png"/></div>
 </body>
  </html>

我认为EditSet.php没有收到$ get []变量,因为当我更改以下内容时:

  $query =  "select imgid from imageinfo where setname='$selectedset' ORDER BY id DESC limit 1";

为:

    $query =  "select imgid from imageinfo where setname='Ceremony' ORDER BY id DESC limit 1";

右图像显示在“setimg”div中,所以它工作正常,get函数有问题,任何人都可以帮助我,非常感谢。我省略了数据库连接功能,所以如果我确实显示它,请不要担心。

1 个答案:

答案 0 :(得分:2)

这个问题令人困惑,因为你的AJAX正在调用脚本所在的页面。蛇可以说它的尾巴。但请记住,PHP和JavaScript不能像这样串联工作,因为PHP在AJAX运行之前会呈现在页面上。

如果你对另一个文件进行AJAX调用,那么它无法工作的原因就会变得更加明显。

的index.php

<script>
$.get('ajax.php?meh=ohi',function(){
    alert("<?php echo $_GET['meh'];?>")
});
</script>

$ _ GET ['meh']将在index.php的页面加载时呈现,而不是ajax.php,您的JavaScript现在看起来像这样:

<script>
$.get('ajax.php?meh=ohi',function(){
    alert("")
});
</script>

$ _GET ['meh']将在风中丢失。

解决方案是将您的JS放在主页上,将所有PHP清理和MySQL放到一个单独的文件中。 整个脚本看起来像 -

的index.php

<script>
$.get('ajax.php?selectset=ohi',function(data){
    alert(data)
});
</script>

ajax.php

<?php
// mysql stuff, sanitize string stuff, etc..
$selectset = $_GET['selectset'];
echo $selectset;
    // whatever you echo out here will be assigned to 'data' and alerted
?>