2010-11-18 7 views
4

私は次のPHP + jQueryを動作させることができません - 私がスクリプトにしたいのは、ajaxを通して値を渡して、一致するかどうかチェックし、スコアに1を加えます。PHP + Jquery - ajaxを通して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

そして、何を正確です問題? –

+0

問題の説明がない質問は、答えるのが難しいです。 "それは動作しません"十分な説明ではありません。 –

答えて

17

まず$ _POST [「名前」]にあなたの$ _GET [「name」を]変更することによって、あなたの問題を解決することができるはずです:...ドン暗黒時代に戻ってはいけません同じスクリプトを使用してHTMLを生成し、ajaxリクエストに応答しないでください。

あなたは何をしようとしているのかわかりません...あなたのコードを変更して、少なくとも何か意味があり、何が起こっているのかを文書化してください。問題は、成功ハンドラからlocation.reloadを呼び出すという事実のようです。

// ajax.php - 出力2名パラメータが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

「変更されたものは何でも」は、今、ajaxコールのページのhtml部分を出力していないという事実です。 –

2

jQueryでPOSTを使用していますが、PHPでGETを試してみてください。

ところで、GET/POST変数が読み込まれる前に設定されているかどうかを確認することをお勧めします。 isset()機能を使用する

0

$_GET$_POSTと置き換えてください。 POSTとGETは基本的にスクリプトに変数を渡す方法が2つあります。 phpのgetメソッドは、URLの最後に付加することもできます:script.php?variable=valueこれは本当に簡単にハックするのが簡単です。 postメソッドはフォームやajax呼び出しで提出することができますが、取得する以上にはかなり安全です。 また、GET変数またはPOST変数が呼び出される前に設定されているかどうかを確認することをお勧めします。そうすれば、愚かな通知エラーを防ぐことができます。それは必ずしも必要ではないelse節以来、あなたはまた、スクリプトの

}else{ 
// do nothing 
} 

部分を削除することができます

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

ただ、次のコードを使用します。

0

あなたはAjax POSTでデータを送信していますが、それをGETから読み取ろうとしています。あなたのAjaxコールではtype: "GET"、PHPでは$_POST['name']を使用してください。

0

問題は、あなたの値をPOSTするためにjQueryを使用しているにもかかわらず、あなたはGETでそれを読んでいます。

あなたはすべての

関連する問題