2012-04-25 6 views
0

$ .ajax() 및 PHP 끝점에서 일부 변수를 서버 측 PHP로 보내는 $ .post()에서 몇 가지 문제가 발생했습니다. 처리를 위해. 이것은 사소한 문제인 듯하지만 형태가 짙은 것으로보고되었지만 지난 며칠 동안 모든 옵션을 시도했지만 성공하지 못했습니다. 다음과 같이

내 시나리오는 다음과 같습니다

나는 사용자가 임의의 위치를 ​​클릭 할 수 있으며 2D 값이 잘 작동하는 JQuery와 기능을 통해 기록됩니다 좌표 있도록 그려진 4x4 그리드와 간단한 인터페이스를 가지고있다. 이제 사용자 버튼을 클릭하여 DB에 저장하기 위해이 두 x-y 변수를 PHP로 보내야합니다. 사용자가 여러 번 클릭 할 수 있지만 제출 된 버튼을 클릭하면 최종 클릭 값만 제출됩니다. 다음 나는 파일 test.php로 작성하는 모든 일이 :

<?php 
$x = $_POST['xval']; 
$y = $_POST['yval']; 
echo "X-Value......" . "$x"; 
echo "Y-Value......" . "$y"; 
// Code to store $x and $y in database 
?> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript"> 
jQuery(document).ready(function(){ 
var x=0; 
var y=0; 
$("#table").click(function(e1){ 
// Process x, y values from the grid..This part is working fine and tested also 
}) 
$("#form").submit(function(event) { 
    //var $form = $(this); 
    //var url_s = $form.attr('action'); 
    var data_s = {xval: 'x', yval: 'y'}; 
    //$.post("test.php", { xval:"x", yval: y }); 
     $.ajax({ type: "POST", url: "test.php", data: {xval: 'x', yval: 'y'}}); 
}) 
}); 
</script> 
<div class="form"> 
<form name="form100" id="form"> 
<input type="submit" name="SubmitOption" id="button" value="Next"> 
</form> 
</div> 

나가 즉 test.php 같은 페이지에서 값을 게시하고 난의 상단 부분의 값을 처리하려는 때문에, PHP 코드가 있지만 PHP 끝에서 $ x, $ y 값을 검색 할 수 없습니다. ">

테스트 후, 나는 $ _POST는 방법 =으로 형태 변수를로드 할 경우에만 수 있다는 것을 발견 =" "행동"포스트하지만 결코 다음과 같이 나는 형태로 게시 테스트 jQuery 변수로 $. post 또는 $ .ajax 호출과 작동합니다. jQuery 클릭 함수에서 양식의 두 텍스트 영역을로드하여 메소드를 시도했지만 method = "post"action = "로 양식을 사용했습니다. jQuery 변수가 양식 변수로 전송 된 이후로 작동합니다.

양식 제출 버튼 만 사용하여 AJAX 호출 ($ .ajax 또는 $ .post)을 수행하고 $ _POST 배열이 다음과 같이로드되기 때문에 $ _POST 배열을 통해 jQuery 변수를 서버 -PHP에 전달하는 방법 method = "post"action = "에서 양식 변수를 가져오고 $ .post() 및 $ .ajax()에서 호출 할 수없고 jQuery 변수를 $ _POST 배열로 전달할 수 없습니다. 또 다른 질문은 입력 유형 = "버튼"클릭만으로 $ _POST 배열에서 양식없이 jQuery 변수를 전달하는 방법입니다 ($ ("# button")으로 시도). $ 아약스와 협력 나는 어떤 형태의 변수를 가지고 있지 않는 한 기술적으로 내가 양식을 필요로하지 않기 때문에 _POST 배열이) 비어?

+1

일반 버튼 만 사용하고 .click 이벤트에 바인딩 해 보셨습니까? 틀렸을 수도 있습니다.하지만 .ajax 호출이 처리되기 전에 양식이 제출 될 수 있습니다. – bfink

+0

그래, 그 tha 아약스 호출 또는 적절한 방법으로, 다른 다른 파일뿐만 아니라 자체 파일에있는 스크립트 아래에 그 PHP 넣어 것입니다. – elclanrs

+0

@bfink : 정상적인 버튼으로 시도하고 click()으로 바인딩하지만 $ _POST 배열에서 변수를 가져올 수 없습니다. 그래서 문제는 $ .ajax() 또는 $ .put()를 사용하여 jquery 변수를 전달하는 방법으로 남아 있습니다.)를 클릭하여 PHP에서 $ _POST 배열에 액세스 할 수 있습니까? –

답변

0

<?php 
if(isset($_POST['action'])){ 
$x = $_POST['xval']; 
$y = $_POST['yval']; 
echo "X-Value......$x"; 
echo "Y-Value......$y"; 
exit; 
} 
?> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script language="javascript" type="text/javascript"> 

      $(function() { 
      $('#button').click(function(){ 
      $.ajax({ 
      type: 'POST', 
      url : 'test.php', 
      data: { 
      action :'ADD' , 
      xval  :'x', 
      yval  :'y' 
     }, 
     success: function(data) { 
      alert(data); 
      } , 
     error : function(){ 
      alert('erroR'); 
      } 
      }) 
     }) 


$("#table").click(function(e1){ 
// Process x, y values from the grid..This part is working fine and tested also 
}) 


    }) 
</script> 
<div class="form"> 
<input type="submit" name="SubmitOption" id="button" value="Next"> 
</div> 

을 시도하고 가능한 jq-을 잡기 위해 불을 지르고를 사용 js 구문 오류

+0

답장을 보내 주셔서 감사합니다 ... 작동하지 않습니다! –

+0

잘 작동합니다. http : // nobat.zibakhodrofarzad-ghesti.ir/test.php – max

관련 문제