jQuery参数没有传递给PHP

时间:2013-01-26 04:39:37

标签: php jquery jquery-load url-parameters

我不确定为什么但是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

4 个答案:

答案 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");
});

尝试以上语法。

  1. 尝试$_REQUEST代替$_GET
  2. 它应该是photos.php或某些.php而不是photos/
  3. 确保id不为空。

答案 3 :(得分:0)

似乎从未定义id。试试这个:

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