我正在创建一个个人网站来帮助项目环境中的任务管理。
我有一个包含以下字段的mySQL表(tblProjects); id,ownerID,projectName和createdDate。然后我得到另一个包含以下字段的表(tblToDos); id,projectId(链接到tblProjects中的id)toDoName,toDoDueDate,createdDate。
这个想法是很多待办事项都属于一个项目。
目前,当网站加载时,我正在使用ajax和jQuery来显示项目列表。当我单击列表中的一个项目时,我希望能够运行另一个ajax Query来将该项目中的待办事项加载到同一页面上的单独div中(类似于您在gmail中单击电子邮件时的示例) ,电子邮件内容加载在右侧)
我的问题的关键在于我不知道如何将项目的ID从我的第一个Ajax请求传递到第二个,这样我就可以返回与点击的项目相关的待办事项。
答案 0 :(得分: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
}
});
}
答案 1 :(得分:1)
为什么不将tblProject.id存储在您用于click事件的元素的属性(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'];
}