我不确定为什么但是jQuery没有将参数传递给PHP以便使用基于参数ID的特定数据来完成load()函数。
在短期内,当用户点击某个链接时会触发点击photo_tab('.$row['id'].');
account.php HTML元素
<li><a href="#!/photos" onclick="photo_tab('.$row['id'].');"><i class="icon-camera"></i> Photos</a></li>
有一次,应该将ID传递给photo_tab(该脚本不包含在页面中,而不是页面本身)
general.js
function photo_tab(user_id) {
$('.ac-content').load('ajax/photos.php',{user_id:id});
}
应加载照片/页面,这是一个PHP页面,并根据user_id值加载与该user_id关联的数据库中的照片。
<?php
if ($_GET['user_id'] == 2) {
echo "WORKED!";
} else {
echo "FAILED!";
}
***this is the photos/ file located at ajax/photos.php with mod_rewrite to point
otherwise to just photos/ or photos
编辑:1 - 使用完整路径而不是重写照片&gt; ajax / photos.php不起作用 2 - ID被传递并通过$ row ['ID']回显到页面上; 3 - ajax / photos.php正在使用$ _REQUEST
答案 0 :(得分:1)
尝试将数据作为查询字符串传递,如下所示:
function photo_tab(user_id) {
$('.ac-content').load('photos/','user_id='+id);
}
修改强> 再看一遍,这个URL是否正确?拥有相对URL似乎很奇怪。
您还应确保生成的标记是否正确,是否在源中打印出行ID?
编辑2: 我在本地设置它,这是工作代码,模仿你的文件结构。
//本地主机/ account.php
<html>
<head>
<script src="http://code.jquery.com/jquery.min.js"></script>
<script>
function photo_tab(id) {
$('.ac-content').load(
'ajax/photos.php',
{ 'user_id': id }
);
}
</script>
</head>
<body>
<div class="ac-content"></div>
<a href="#!/photos" onclick="photo_tab(3);"><i class="icon-camera"></i> Photos</a>
</body>
//本地主机/ AJAX / photos.php
<?php
if (isset($_GET['user_id']) && $_GET['user_id'] == 2)
{
echo "WORKED!";
}
else
{
echo "FAILED!";
}
答案 1 :(得分:1)
如何将变量包装在引号中?
function photo_tab(id)
{
$('.ac-content').load('photos/',{'user_id':id});
}
答案 2 :(得分:1)
是的,不应该按照您的意愿传递参数,因为名称意图从服务器加载数据并将返回的HTML放入匹配的元素中。
.load( url [, data ] [, complete(responseText, textStatus, XMLHttpRequest) ] )
EG:与上面相同,但会将其他参数POST到服务器以及服务器完成响应时执行的回调。
$(".ac-content").load("photos.php", {user_id:user_id}, function(){
alert("have been loaded");
});
尝试以上语法。
$_REQUEST
代替$_GET
photos.php
或某些.php而不是photos/
id
不为空。答案 3 :(得分:0)
似乎从未定义id
。试试这个:
function photo_tab(id) {
$('.ac-content').load('photos/',{user_id:id});
}