1

我不确定为什么,但是 jQuery 没有将参数传递给 PHP,以便根据参数 ID 使用特定数据完成 load() 函数。

短期内,当用户点击链接时,会触发 onclickphoto_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(脚本包含在页面中而不是它自己的页面上)

通用.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-使用完整路径而不是重写照片> ajax/photos.php 不起作用 2-ID 正在通过 $row['ID']; 传递并回显到页面上;3 - ajax/photos.php 正在使用 $_REQUEST

4

4 回答 4

1

尝试将数据作为查询字符串传递,如下所示:

function photo_tab(user_id) {
    $('.ac-content').load('photos/','user_id='+id);
} 

编辑: 再看一遍,那个 URL 正确吗?有一个相对 URL 似乎很奇怪。

您还应该确保生成的标记是正确的,行 ID 是否在源中打印出来?

编辑2: 我在本地设置,这是工作代码,模仿你的文件结构。

//localhost/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>

//localhost/ajax/photos.php

<?php
if (isset($_GET['user_id']) && $_GET['user_id'] == 2)
{
    echo "WORKED!";
}
else
{
    echo "FAILED!";
}
于 2013-01-26T04:47:37.690 回答
1

用引号包裹你的变量怎么样?

function photo_tab(id)
{
    $('.ac-content').load('photos/',{'user_id':id});
} 
于 2013-01-26T04:48:20.023 回答
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");
});

试试上面的语法。

  1. 试试$_REQUEST$_GET
  2. 它应该photos.php或一些 .php 不是photos/
  3. 确保id不为空。
于 2013-01-26T04:51:04.013 回答
0

看起来id从未定义过。试试这个:

function photo_tab(id) {
  $('.ac-content').load('photos/',{user_id:id});
} 
于 2013-01-26T04:42:22.973 回答