2013-05-21 58 views
1

我正在創建一個個人網站以幫助在項目環境中進行任務管理。在PHP中的兩個Ajax調用之間傳遞變量

我有一個mySQL表(tblProjects),其中包含以下字段; id,ownerID,projectName和createdDate。然後我有另一個表(tblToDos),其中包含以下字段; id,projectId(鏈接到tblProjects中的id)toDoName,toDoDueDate,createdDate。

這個想法是許多todos可以屬於一個項目。

目前,當網站加載時,我使用ajax和jQuery來顯示項目列表。當我點擊列表中的其中一個項目時,我希望能夠運行另一個ajax Query來將該項目的todos加載到同一頁面上的單獨的div中(類似於當您單擊gmail中的電子郵件時) ,電子郵件內容加載在右側)

我的問題的癥結在於,我不知道如何將項目的ID從我的第一個Ajax請求傳遞到第二個,以便我可以返回關聯的待辦事項與點擊的項目。

+0

使用項目管理軟件,而不是比重新發明輪子。另外,如果你是初學者,我會先解決一個更簡單的問題。 –

+0

我明白你的觀點,儘管我正在創造一些供個人使用的東西,以幫助我更好地掌握不常有機會發展的技能。 – user1818517

回答

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 
    } 
    }); 
} 
+0

完美,謝謝 – user1818517

+0

偉大的答案! :) –

1

爲什麼不保存在一個屬性tblProject.id(數據ID)爲元素的使用爲click事件,然後通過類似訪問:

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

如果通過.load您加載內容(讓我們假設你給這個div類的「盒子」),第二個參數接受數據數組,所以你可以通過傳遞:

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

您將使用能夠訪問你的PHP腳本傳遞的變量:

if(isset($_POST['projectId'])){ 
     $project_id = $_POST['projectId']; 
    } 
+0

感謝您的回答,這是另一個很好的方式來做到這一點,沒有發生在我身上。 – user1818517