我尝试实现以下代码:
这是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函数有问题,任何人都可以帮助我,非常感谢。我省略了数据库连接功能,所以如果我确实显示它,请不要担心。
答案 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
?>