2010-11-18 6 views
4

다음 PHP + jQuery를 사용할 수 없습니다. 스크립트에서 아약스를 통해 값을 전달하고 PHP로 가져 오는 것이 좋습니다. 점수와 일치하는지 확인하고 점수에 1을 더하십시오. PHP + Jquery - 아약스에서 PHP로 값을 전달하고 변수를 확인하십시오.

내가 작성한 코드 : 도움을

<?php 
$score = "1"; 

$userAnswer = $_POST['name']; 

if ($_POST['name'] == "145"){ 
    $score++; 
}else{ 
    //Do nothing 
} 

echo $score; 

?> 


<script type="text/javascript"> 

$(document).ready(function() { 

    $("#raaagh").click(function(){ 

    var value = "145"; 

    alert(value); 

    $.ajax({ 
     url: 'processing.php', //This is the current doc 
     type: "POST", 
     data: ({name: value}), 
     success: function(){ 
      location.reload(); 
     } 
    }); 


    }); 
}); 

</script> 

<p id="raaagh">Ajax Away</p> 

감사합니다, 나는 두 경우에 POST로 GET 변경하지 않고, 기쁨 한 - 다른 뭔가 문제가있다.

+0

그리고 정확히 무엇인지 2 문제? –

+0

문제에 대한 설명이없는 질문은 대답하기가 어렵습니다. "효과가 없다"는 설명이 충분하지 않습니다. –

답변

17

먼저 $ _POST [ '이름']에 $의 _GET [ '이름'] 변경하여 문제를 해결 할 수 있어야한다 : ... 돈 암흑 시대로 돌아 가지 마세요 HTML을 생성하고 Ajax 요청에 응답하기 위해 동일한 스크립트를 사용하지 마십시오.

나는 당신이하려고하는 것에 대해 어떤 감각도 갖지 못합니다 ... 적어도 당신의 코드를 바꾸어서 어떤 의미를 갖게하고 무슨 일이 일어나고 있는지 문서화하십시오. 문제는 성공 처리기에서 location.reload를 호출한다는 사실입니다.

// ajax.php - 이름 매개 변수가 145 인 경우 출력은 1, 그렇지 않으면 (????)

<?php 
$score = "1";  
$userAnswer = $_POST['name'];  
if ($_POST['name'] == "145"){ 
    $score++; 
}  
echo $score;  
?> 

// test.html를

<script type="text/javascript"> 
$(document).ready(function() {  
    $("#raaagh").click(function(){  
     $.ajax({ 
      url: 'ajax.php', //This is the current doc 
      type: "POST", 
      data: ({name: 145}), 
      success: function(data){ 
       // Why were you reloading the page? This is probably your bug 
       // location.reload(); 

       // Replace the content of the clicked paragraph 
       // with the result from the ajax call 
       $("#raaagh").html(data); 
      } 
     });   
    }); 
}); 

</script> 

<p id="raaagh">Ajax Away</p> 
+0

방금 ​​거센 두통을 덜어 줬습니다. 나는 여전히 자체적 인 재 장전을하고있어 버그가 아니 었습니다. 고맙습니다! – Richard

+1

"다른 무엇이든지 바뀌 었습니다."사실은 이제 아약스 전화에 대한 페이지의 html 부분을 출력하지 않는다는 사실입니다. –

2

jQuery에서 POST를 사용하지만 PHP에서 GET을 시도해보십시오.

그런데 GET/POST 변수가 읽히기 전에 설정되어 있는지 확인하는 것이 좋습니다. 은 isset() 기능을 사용합니다.

0

$_GET$_POST으로 바꿉니다. 기본적으로 POST와 GET은 스크립트에 변수를 전달하는 두 가지 다른 방법입니다. PHP의 get 메소드는 URL 끝에 붙일 수도 있습니다 : script.php?variable=value 그리고 해킹하기가 정말 쉽습니다. post 메서드는 폼이나 아약스 호출로 제출할 수 있지만 적어도 get보다 더 안전합니다. 또한 GET 또는 POST 변수를 호출하기 전에 설정했는지 확인하여 바보 같은 오류가 발생하지 않도록 할 것을 제안합니다. 항상 필요하지 않은 다른 절하기 때문에, 당신은 또한 스크립트의

}else{ 
// do nothing 
} 

부분을 삭제할 수 있습니다

if (isset($_POST['var']) and !empty($_POST['var'])) { // do something } 

:

그냥 다음 코드를 사용합니다.

0

Ajax POST로 데이터를 제출했지만 GET에서 읽으려고합니다. Ajax 호출에서 type: "GET"을 사용하거나 PHP에서 $_POST['name']을 사용하십시오.

0

문제는 jQuery를 사용하여 값을 POST하는 것이지만 GET으로 읽는 중입니다.

당신은 모든

관련 문제