2012-10-26 3 views
1

나는 사용자 지불 여부를 보여주는 페이지가 있습니다. 그들은 지불하지 않은 경우 큰 빨간 X의 이미지를 표시하고 지불 버튼을 표시하고 그들이 큰 녹색 수표를 지불 지불해야합니다. PHP 스크립트 코드를 수행하는 방법을 알고, 그것을 pay.php이라고 할 수 있습니다. 그러나 기본 페이지의 아약스에 대한 논리를 철저히 조사해야합니다. 그래서 이런 식으로 뭔가를 생각하고 있어요 :AJAX 표시 이미지

<div id="payment"> 
    <div id="image"></div> 
    <div id="pay_text></div> 
</div> 

<script> 
$(document).ready(function(e) { 
    if(<?php echo $is_logged_in; ?>) { 
     $('#payment').load(function() { 
      $.ajax({ 
       data: $this.serialize(), // get the form data 
       type: "POST", // GET or POST 
       url: "Scripts/pay.php", // the file to call 
       complete: function(data) { 
        if(data=="Yes") { 
         $('#image') //do some jquery to make the correct image display here 
         $('#pay_text').text("Yah you paid"); 
        } else { 
         $('#image') //do some jquery to make the correct image display here 
         $('#pay_text').text("Sorry you didn't pay"); 
        } 
       } 
      }); 
     } 
    } 
}); 
</script> 


그래서 기본적으로 스크립트는 yes 또는 no을 다시 에코 것이다. 사용자가 로그인 한 후에 만이 부하를 평가하기를 원합니다 (특정 사용자가 지불했는지 확인해야 함). 그래서 내 논리는 쓰고 있습니까, 아니면 제가 빠져 있습니까?

+0

? 그렇지 않으면 당신은 그걸 없애고 아약스를 할 수 있습니다. –

답변

2

그런 식으로 load을 사용하면 안됩니다. 실제로 그럴 필요는 없습니다.

귀하의 PHP 변수 $is_logged_in 물론 아약스 기능을 실행하기 전에 true을해야하고, true 또는 false를 반환하는 것은 일반적으로 yes 또는 no가 반환되지 않은 코드로 이동하는 방법, 그리고 것 datatrue 또는 false 중 하나 인 경우 if 문에서 바꿀 수 있습니다.

ajax 함수를 사용하여 양식 데이터를 보내는 방법은 어떤 형식입니까? 그리고 $this은 무엇입니까?

사용자가 서버 측에서 돈을 지불했는지 여부를 알아 내야하고 클라이언트 측에서 실제로 데이터를 필요로하지 않으므로 데이터베이스 또는 기타 항목을 확인하기 만하면됩니다. 해당 사용자가 지불했는지 확인하기 위해 사용 중이며 true 또는 false을 반환하십시오.

당신은 ..로드와 Ajax가 필요하지 않습니다 당신이 실제로 #payment 요소 안에 뭔가를로드하려고
<script type="text/javascript"> 
    $(document).ready(function() { 
     if(<?php echo $is_logged_in; ?>) { 
      $.ajax({ 
       type: "POST", 
       url: "scripts/pay.php" 
      }).done(function(data) { 
       if (data) { 
        $('#image').css('background', 'url(/yes.png)'); 
        $('#pay_text').text("Yah you paid"); 
       }else{ 
        $('#image').css('background', 'url(/no.png)'); 
        $('#pay_text').text("Sorry you didn't pay"); 
       } 
      }); 
     } 
    }); 
</script>​​​​​​​​​