2011-02-28 9 views
1

오늘 JQuery를 통해 AJAX를 사용하기 시작했으며 아무데도 갈 수 없습니다. 예를 들어 나는 그것을하기위한 직업을 마련했다. 양식을 제출 한 다음 결과를 표시하십시오. 분명히 나는 ​​그것을 올바르게하지 못했다.AJAX 양식 제출 및 결과

HTML.

<form id="PST_DT" name="PST_DT" method="post"> 
<input name="product_title_1682" id="product_title_1682" type="hidden" value="PADI Open Water"> 
<input name="product_title_1683" id="product_title_1683" type="hidden" value="PADI Advanced Open Water"> 

<input type="submit" name="submit" id="submit" value="Continue" onclick="product_analysis_global(); test();"/> 

</form> 
<span id="results"></span> 

사실 더 많은 필드가 모두 동적으로로드됩니다. 아약스를 사용하여 간단한 수학을 위해 PHP에 제출 한 다음 결과를 반환 할 계획이지만 나중에 걱정할 수도 있습니다.

JQuery와

function test() { 

    //Get the data from all the fields 
    var alpha = $('#product_title_1682').val(); 
    JQuery.ajax({ 
     type: 'POST', 
     url: 'http://www.divethegap.com/update/functions/totals.php', 
     data: 'text=' + alpha, 
     beforeSend: function() { 
      $('#results').html('processing'); 
     }, 
     error: function() { 
      $('#results').html('failure'); 
     }, 
     timeout: 3000, 

    }); 
}; 

나의 시도이고 아무 일도 발생하지 않는 PHP

<?php 
$alpha = $_POST['alpha']; 
echo 'Marvellous',$alpha; 
     ?> 

. 어떤 아이디어?

Marvelous.

+0

:

function test() { // serialize form data var data= $('#PST_DT').serialize(); // ajax request $.ajax({ type : 'POST', url : 'http://www.divethegap.com/update/functions/totals.php', data : data, beforeSend : function() { $('#results').html('processing'); }, error : function() { $('#results').html('failure'); }, // success callback success : function (response) { $('#results').html(response); }, timeout : 3000, }); }; 

당신의 PHP 스크립트에서 사용 전송되는 정보 디버깅 할 수 있습니다 '텍스트 ='+ 알파, 당신은 데이터를 수행 할 수 있습니다 텍스트 : 알파. 또한, 같은 도메인에있는 양식과 PHP 페이지가 있습니까? –

+0

모두 같은 도메인에 있습니다. 주 파일은 헤더에 함수가 있고 PHP 파일은 파일 함수에 있습니다. ../../../functions/totals.php –

+0

'$ alpha = $ _POST [ 'text']'를 사용해보고 무슨 일이 일어 났는지 게시 해주십시오. – Blender

답변

2

우선 스크립트가 $_POST['alpha']을 찾고있는 동안 $ _POST 변수를 '텍스트'로 전달합니다. PHP를 $_POST['text']으로 업데이트하면 적절한 텍스트가 표시됩니다.

또한 양식에 많은 입력이 있고 AJAX 요청에 모두 양식을 전달하려는 경우 jQuery의 serialize() 메소드를 사용하는 것이 좋습니다. 당신의 PHP 스크립트에서

data: $('#PST_DT').serialize(), // this will build query string based off the <form> 
// eg: product_title_1682=PADI+Open+Water&product_title_1683=PADI+Advanced+Open+Water 

당신은 그 $_POST['product_title_1682']$_POST['product_title_1683']를 사용할 필요가 것입니다.

업데이트 $ .ajax 통화에 성공 콜백을 추가하십시오. 대신 데이터의

var_dump($_POST); 
+0

안녕하세요, 답변 해 주셔서 감사합니다. 나는 아무데도 아직도 가지 않고있다. 나는 내가 결과를 쓰지 않은 결과를 스팬의 이드로 쓰는 것을 발견했을 때 나는 무언가 위에 있다고 생각했다. 아직도 아무 일도 일어나지 않습니다. 이 절차가 활성화되고 있다는 증거는 없습니다.절대적으로 아무 일도 일어나지 않습니다. –

+0

@Robin, 좀 더 도움이되도록 내 대답을 업데이트했습니다. 오류가보고 되었습니까? – McHerbie

+0

그게 전부입니다. 방금 나 혼자 왔어. 그것은 오류의 조합이었습니다. 그것은 성공 함수가 필요하고 PHP 파일을 데이터베이스가 설정된 방식으로 인해 더 어딘가에 옮길 필요가있었습니다. –

0

AJAX 요청에서는 foo.php?text=... 매개 변수를 보내지 만 PHP 파일에서는 foo.php?alpha=...을 찾는 $_POST['alpha']을 호출합니다.

$_POST['alpha']에서 $_POST['text']으로 변경하고 작동하는지 확인하십시오.

$("#PST_DT").submit(function(e){ 
e.preventDefault(); 
$.ajax({ 
data: $(this).serialize(), 
type: "POST", 
url: 'http://www.divethegap.com/update/functions/totals.php', 
success: function(){ 
....do stuff. 
} 
}); 
return false; 
}); 

이것은 당신이 정상처럼 변수를 처리 할 수 ​​있습니다 :

0

는 간단한 방법이있다.