1

我正在创建一个个人网站来帮助在项目环境中进行任务管理。

我有一个包含以下字段的 mySQL 表(tblProjects);id、ownerID、projectName 和 createdDate。然后我得到了另一个包含以下字段的表(tblToDos);id、projectId(链接到 tblProjects 中的 id)toDoName、toDoDueDate、createdDate。

这个想法是许多待办事项可以属于一个项目。

目前,当网站加载时,我使用 ajax 和 jQuery 来显示项目列表。当我单击列表中的一个项目时,我希望能够运行另一个 ajax 查询以将该项目中的待办事项加载到同一页面上的单独 div 中(类似于单击 gmail 中的电子邮件时) ,电子邮件内容加载在右侧)

我的问题的症结在于我不知道如何将项目的 ID 从我的第一个 Ajax 请求传递到第二个请求,以便我可以返回与单击的项目关联的待办事项。

4

2 回答 2

3

您可以将每个项目与其 ID 相关联,即,假设每个项目都有一个按钮:

<input type="button" value="Show TODOs for this project" onclick="showTodos(1)">

其中“1”是您的项目的 ID。

然后,在showTodos()函数中,你可以有这样的东西:

function showTodos(projectId) {
  $.ajax({
     type: "GET",
     url: "/todos.php?id=" + projectId,
     success: function (json) {
       // Construct the div here
     }
  });
}
于 2013-05-21T13:35:54.577 回答
1

为什么不将 tblProject.id 存储在用于单击事件的元素的属性(data-id)中,然后通过以下方式访问它:

    var projectId = $(this).attr( "data-id" );

如果您通过 .load 加载内容(假设您为该 div 提供了“box”类),则第二个参数接受数据数组,因此您可以通过以下方式传递:

    $( ".box" ).load( 'myPHPscript.php',  { "projectId" : projectId } );

您将能够使用以下方法访问 php 脚本中传递的变量:

    if( isset( $_POST['projectId'] ) ){
        $project_id = $_POST['projectId'];
    }
于 2013-05-21T13:41:05.360 回答