2011-04-11 4 views
0

우선,이 사이트에서 지금까지 나를 도왔던 모든 사람들에게 감사드립니다. 너희들은 놀랍고 나의 논문을 완성시키기 위해 여러 번 내 목숨을 구했다.자바 스크립트 변수를 AJAX에 삽입했을 때 PHP에 전달

여기에 있습니다. 한 페이지에서 실행되는 실험을 만들고 각 평가판에 대해 ajax를 통해 PHP 파일에서 콘텐츠를 다시로드합니다. 각 평가판의 경우 특정 버튼을 클릭하는 시간과 평가판에 대한 몇 가지 정보를 무작위로 선택했기 때문에이를 기록해야하므로 클릭 시간을 특정 평가판에 연결할 수 있어야합니다.

지금까지 모든 것이 훌륭하게 작동했습니다. 각 클릭마다 아약스가있는 PHP 스크립트를로드하고 실행하도록 설정하고 각각의 평가판에 대한 모든 중요한 변수가 포함 된 스크립트 섹션을 삽입했습니다. 시간을 수집하는 PHP 스크립트가 완벽하게 작동하고 평가판 정보를 수집하는 스크립트가 실행 중이지만 $ _GET 자바 스크립트로 변수를 올바르게 관리 할 수 ​​없습니다.

너무 가까이서, 아직까지! 누구든지 나를 도울 수 있습니까? 난 그냥 사이트에서 javascript 변수를 잡을 수 있어야합니다, 그럼 난 갈 수있어.

내 콘텐츠는 모두 여기에 있으므로 시청하고 놀 수 있습니다.

The experiment page. 나는 그것이 다음에 올릴 시험판을 클릭 할 때마다 JS 변수의 정보를 포함하는 경고를 팝업하도록 설정 했으므로 올바르게로드되고 있는지 확인할 수 있습니다.

My backend JS logic. 중요한 부분은 스크립트 하단의 "오디오 로직"범주 아래에 있습니다.

The log file. 실험이 실행될 때마다 모든 데이터가 여기에 표시됩니다. PHP 스크립트가 실행 되더라도 JS에서 가져 오는 변수는 출력되지 않습니다.

... 여기 JS 변수를 가져 오기로되어있는 PHP 코드가 있습니다. (loginfo.php)

$trialID = $_GET['trialID']; 
$type = $_GET['type']; 
$trick = $_GET['trick']; 
$file = "log.txt"; 
$fh = fopen($file, 'a') or die("You just failed the entire experiment"); 
fwrite($fh, "\n Trial ID: ".$trialID." | Trial Type: ".$type." | Trick? ".$trick); 
fclose($fh); 

이 코드는 변수가 이미로드 된 후라고하며 내가 그들에게 보여 주었다 제대로 작은 경고 상자를로드 할 수 있습니다. 내가 뭘 놓치고 있니? 이 PHP 코드가 변수를 선택하지 않는 이유는 무엇입니까?

이 도와 주셔서 너무 감사합니다)

답변

2

자바 스크립트가 세션을 처리하지 않습니다, 그것은 클라이언트 측에만 스크립트 언어)로 (쿠키 다루고있다. 따라서 GET 요청으로 매개 변수를 전달해야합니다. 자세한 사항은 jQuery's 문서에 나와 있습니다 :

$ 갔지 ("test.php", {이름 : "존", 시간 : "오후 2시"});

+0

그레이트 콜! 하지만 내가 입력 한 데이터 만 보낼 수 있습니까, 아니면 변수를 보낼 수 있습니까? 각 임상 시험마다 다른 데이터를 보내야하므로 각 임상 시험마다 서로 다른 맞춤 데이터를 보내는 거대한 성명서를 작성하는 것이 매우 지루할 것입니다. –

+0

변수 이름을'{name : variablename}'과 같이 보내면 따옴표를 사용하지 않으면 변수로 간주됩니다. – Ben

+0

좋아, 이것을 시도해 보겠습니다. 이것은 자바 스크립트 코드의 다른 곳에서 정의 된 변수 일 수 있습니다. 맞습니까? 그리고 내가 PHP에서 "name"또는 변수 이름으로 $ $ GET하는 방법은 무엇입니까? –

1

글쎄, 당신은 (내가 정확히 기억 경우) 얻을 사용하도록 지정, 그래서 당신은 $_POST의 PHP가에 $_GET의 변경하려고하지 않는 한 정보를 게시하는 JQuery와 아약스 기본 설정됩니다.

+0

작동하지 않음 : ( –

관련 문제