2013-03-19 3 views
5

나는 1 개의 PHP 파일 이름 index.php를 가지고있다. 해당 파일에서 하나의 변수를 아약스에서 PHP로 전달하고 싶습니다.아약스에서 PHP로 변수를 넘겨

var elem = document.getElementById("mydiv").value; 
(function($) 
{ 
    $(document).ready(function() 
    { 
     $.ajax(
     { 
      type:"POST", 
      url: window.location.href, 
      data: 'action='+elem, 
      beforeSend: function() { 
       $('#cctv').hide(); 
      }, 
      complete: function() { 
       $('#cctv').show(); 
      }, 
      success: function() { 
       $('#cctv').show(); 
      } 
     }); 
     var $container = $("body"); 
     $container.load('findAllPath.php',{'function': 'findAllPath'}); 
     var refreshId = setInterval(function() 
     { 
      $container.load('findAllPath.php',{'function': 'findAllPath'}); 
     }, 10000); 
    }); 
})(jQuery); 

내 PHP는

if (isset ($_POST['action'])) 
{ 
    echo $_POST['action']; 
} 

불을 지르고에서, 나는 그 아약스는 이미 '행동 = 값'하지만 PHP에서, $ _POST [ '행동'] 게시 볼 수 있습니다 비어 있습니다. 누구든지 나를 도울 수 있습니까? 내 코드에 문제가 있습니까? 당신에게

+0

isset 테스트가 통과합니까? 그것이 빈 문자열에만 설정 되었습니까? – Dutts

+0

페이지에서이 자바 스크립트가 실행됩니까? 예를 들어, ''태그 안에 있거나 하단에' '근처에 있습니까? –

+0

'데이터'를 쿼리 문자열이 아닌 해시로 만드십시오. – halfer

답변

1

설정이 같은 JSON 객체 감사합니다 :

data: {action: elem} 

을 순수 JS와 jQuery를 함께 사용하지 마십시오.

var elem = $('#myDiv').val(); 

위의 친구와 같습니다. js가 전체 페이지가로드되기 전에 value 속성을 얻으려고하는 상황이있을 수 있습니다. 문서 준비 블록에서 모든 작업을 수행해야합니다.

는 또한 수행 할 수 있습니다

data: { 
action: $('#myDiv').val() 
} 

당신은 양식에 최신 데이터를 가지고 다음 확실 할 것이다!

4

것은 예를 들어이

data: {action: elem}, 

처럼

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", action: "save" } 
    }).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 

printr 전체 $의 _REQUEST 데이터를 사용하여 시도하고 확인 당신이 조치를에

+0

이미 시도했지만 다른 것은 없습니다. : –

1

룩을 받고 있다면 당신이 놓친 것을 발견

$.ajax({ 
     type: "POST", 
     url: "some.php", 
     data: { action: elem} 
     beforeSend: function() { 
      $('#cctv').hide(); 
     }, 
     complete: function() { 
      $('#cctv').show(); 
     }, 
     success: function() { 
      $('#cctv').show(); 
     } 
    }); 
    var $container = $("body"); 
    $container.load('findAllPath.php',{'function': 'findAllPath'}); 
    var refreshId = setInterval(function() 
    { 
     $container.load('findAllPath.php',{'function': 'findAllPath'}); 
    }, 10000); 
}); 
+0

흠? 나는 그것을 얻지 못한다. 만약 당신이 URL을 뜻한다면 : "some.php"가 아니라 window.location.href는 전혀 다른 –

+0

데이터를 만들지 않는다 : 'action ='+ elem, 이것은 잘못된 것이다. 하나, 당신이 대답을 못하거나 이해할 수 없습니까? –

0
if (!empty($_POST['action'])) 
{ 
echo $_POST['action']; 
} 

다음 코드를 시도하십시오 ...

+0

하지만 $ _POST [ 'action']은 정의되지 않았으므로 빈 테스트는 통과하지 않습니다. –

관련 문제