2012-10-13 4 views
1

를 보내는 동일한 페이지에 내 페이지에서 양식을 가지고 : 같은 페이지에아약스는 빈 값

<form id="extended-search" > 
<div class="input-container"> 
<select class="select" name="sex" id="sex"> 
<option value="0">All</option> 
<option value="1">M</option> 
<option value="2">F</option> 
</select> 
</div> 
<input type = "button" class="searchButton" value = "Show" onClick="submitSearch();"> 
<img id="loading" src="img/ajax-loader.gif" alt="working.." /> 
</form> 

그리고 jQuery 코드 :

function submitSearch() { 
     var submitSearchData = jQuery('#extended-search').serialize(); 
     var selectedValue='<?php echo $_POST['sex'];?>' ; 
     jQuery.ajax({ 
      type: "POST", 
      data: submitSearchData, 
      url: "feed.php", 
      success: function() { 
      alert(submitSearchData); 
      alert(selectedValue); 
      } 
     }); 
    } 

모든 작품 (첫 번째 경고를 반환, 예를 들어, 성별 = 1이지만 두 번째 것은 비어 있음) 괜찮으나 $_POST['sex']은 비어 있습니다.

jQuery(document).ready(function(){ 

    jQuery('.searchButton').click(function(){    
     submitSearch(); 
    }); 
}); 

제거하려면 :

을 사용하려면, 내가 노력했습니다 AJAX에서 url: "feed.php",. data: {sex: submitSearchData},

추가 및 AJAX에 dataType을 변경

을 확인하십시오.

하지만 모든 것은 여전히 ​​동일합니다. $_POST['sex']은 여전히 ​​비어 있습니다. 같은 페이지에서 AJAX를 통해 $_POST var($_POST['sex'])을 전달하려면 어떻게해야하나요? 당신이 양식을 제출하지 않으며이 때문에 당신이 $_POST['sex'] 값을받지 않기 때문에 선택한 옵션

var selectedValue=$('#sex').val(); 

을 얻기 위해이 코드

+0

왜 AJAX와 함께 인라인 PHP를 사용하고 있습니까? – elclanrs

+0

당신은 var에 대해 이야기했습니다. selectedValue = '';, 이 var에 대한 빠른 검사를 위해 테스트 용으로 추가되었습니다. –

+0

이 작업을 수행 할 수 있었습니까? –

답변

0

사용. 현재 선택된 옵션을 얻으려면 jquery 또는 jaavscript을 사용해야합니다.

+0

나는 잘 작동하는 다른 페이지에 simillar 코드가있다. 내가 쓸 때.serialize() 폼에서 선택된 값을 모두 가져 왔지만 문제는 같은 페이지에 전달할 수 없습니다. –

0

이 줄 :

var selectedValue='<?php echo $_POST['sex'];?>'; 

이 여러분이 예상하는 것 무엇을하지 않습니다. submitSearch() 함수는 버튼을 클릭 할 때만 호출됩니다 (두 번이지만 나중에 자세히 설명 함). PHP에 POST을 입력하면 클릭 이벤트가 없으므로 JavaScript가 실행되지 않고 JavaScript가 호출되면 $_POST['sex']에 아무 것도 설정되지 않습니다.

당신 수있는 PHP가이 같은 자바 스크립트에 반환 것을 얻을 : 당신의 feed.php에이 보이는 경우

jQuery.ajax({ 
    type: "POST", 
    data: submitSearchData, 
    url: "feed.php", 
    success: function(data) { 
     alert("response from PHP: " + data); 
    } 
}); 

그래서 :

<?php 
if(isset($_POST['sex'])): 
    switch ($_POST['sex']) { 
     case 0: 
      echo "You didn't select anything"; 
      break; 
     case 1: 
      echo "You selected male"; 
      break; 
     case 2: 
      echo "You selected female"; 
      break; 
    } 
else: 
?> 
// all your HTML 
<?php endif; ?> 

는 다음 alertresponse from PHP: You selected male으로 돌아올 것 (또는 You didn't select anything 또는 You selected female)를 선택합니다.

<input type = "button" class="searchButton" value = "Show" /> 

그렇지 않으면 두 번 submitSearch()를 호출합니다 :

이미에만 있어야 <head> 당신의 HTML에 jQuery를 사용하여 버튼을 클릭 바인딩 때문에

.

+0

나는 (ifetet ($ _ POST [ 'sex'])) checker가 있는데, var가 비어 있다고 말한 것을 잊었다. 그래, 나는 한 번 내 스킨을 부르고 있는데, 나는 다른 방법을 시도한다고 말하고 싶지만 여전히 같은 결과이다. –

+0

@DmitryAntonenko AJAX POST에서 제출 한'