2013-05-21 2 views
1

프로젝트 환경에서 작업 관리를 돕기 위해 개인 웹 사이트를 만들고 있습니다.PHP에서 두 건의 아약스 호출간에 변수 전달하기

다음 필드가 포함 된 mySQL 테이블 (tblProjects)이 있습니다. id, ownerID, projectName 및 createdDate입니다. 나는 다음 테이블을 가지고있는 다른 테이블 (tblToDos)을 가지고있다. id, toDoName, toDoDueDate, createdDate의 projectId (tblProjects의 id에 링크).

아이디어는 많은 할일이 프로젝트에 속할 수 있다는 것입니다.

현재 사이트가로드 될 때 저는 프로젝트 목록을 보여주기 위해 ajax와 jQuery를 사용하고 있습니다. 내가 목록에서 프로젝트 중 하나를 클릭하면 해당 프로젝트에서 todos를 같은 페이지의 별도 div로로드 할 다른 Ajax 쿼리를 실행할 수 있기를 원합니다 (예 : Gmail의 전자 메일을 클릭 할 때와 비슷 함). , 이메일 내용이 오른쪽에로드 됨)

내 문제의 핵심은 프로젝트의 ID를 첫 번째 Ajax 요청에서 두 번째 것으로 전달하여 내가 수행 할 작업을 리턴 할 수 있다는 것입니다 클릭 한 프로젝트.

+0

가 바퀴를 개혁하고보다 대신에 프로젝트 관리 소프트웨어를 사용합니다. 또한, 초보자 인 경우 먼저 더 쉬운 문제를 해결할 것입니다. –

+0

나는 개인적인 용도로 무언가를 만들어 내고 있지만, 기술 향상에 도움이되도록 종종 발전 할 기회가 없다. – user1818517

답변

3

당신은 즉, 자사의 ID와 각 프로젝트를 연결할 수, 각 프로젝트의 버튼을 가지고 말 : "1"프로젝트의 ID입니다

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

.

다음, showTodos() 기능, 당신은 같은 것을 할 수 : 왜 요소에 대한 속성에 tblProject.id (데이터 ID)를 저장하지

function showTodos(projectId) { 
    $.ajax({ 
    type: "GET", 
    url: "/todos.php?id=" + projectId, 
    success: function (json) { 
     // Construct the div here 
    } 
    }); 
} 
+0

완벽한, 고맙습니다 – user1818517

+0

그레이트 대답! :) –

1

당신하여 클릭 이벤트에 사용

: 다음과 같이 통해 액세스가 : .load 통해 내용을로드가 (이 클래스 "상자"div에 준 가정 할) 경우를 통해 전달할 수 있도록

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

는 두 번째 매개 변수는 데이터 배열을 받아

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

0 당신은 사용하여 PHP 스크립트에 전달 된 변수에 액세스 할 수 있습니다 :

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

답장을 보내 주셔서 감사합니다. 이것은 나에게 발생하지 않은 또 다른 좋은 방법입니다. – user1818517