2012-04-25 7 views
0

$ .ajax()と$ .post()でいくつかの問題が発生しました。処理のために。 これは些細な問題だと思われていますが、フォームで大きく報告されましたが、私は最後の数日間のすべてのオプションを試しましたが、成功しませんでした。次のように

私のシナリオは次のとおりです。

私は、ユーザーが任意の位置をクリックすると、2D座標値が正常に動作しているjQueryの関数を介して記録されるように描かれた4×4のグリッドとのシンプルなインターフェイスを持っています。今度は、ユーザボタンをクリックしてDBに格納するために、これらの2つのx-y変数をPHPに送信する必要があります。ユーザーは複数回クリックすることができますが、最後にクリックされた値のみが送信されるように送信ボタンがあります。 次のように私は、ファイルtest.phpをで書かれたすべての作業を持っている:

<?php 
$x = $_POST['xval']; 
$y = $_POST['yval']; 
echo "X-Value......" . "$x"; 
echo "Y-Value......" . "$y"; 
// Code to store $x and $y in database 
?> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript"> 
jQuery(document).ready(function(){ 
var x=0; 
var y=0; 
$("#table").click(function(e1){ 
// Process x, y values from the grid..This part is working fine and tested also 
}) 
$("#form").submit(function(event) { 
    //var $form = $(this); 
    //var url_s = $form.attr('action'); 
    var data_s = {xval: 'x', yval: 'y'}; 
    //$.post("test.php", { xval:"x", yval: y }); 
     $.ajax({ type: "POST", url: "test.php", data: {xval: 'x', yval: 'y'}}); 
}) 
}); 
</script> 
<div class="form"> 
<form name="form100" id="form"> 
<input type="submit" name="SubmitOption" id="button" value="Next"> 
</form> 
</div> 

私はすなわちtest.phpを同じページ内の値を掲載しています私はのトップ部分の値を処理するために、 PHPコードですが、PHPの最後で$ x、$ yの値を取得することはできません。 「>

テストの後、私は$ _POSTの方法=でフォーム変数を読み込むことができるだけであることがわかった」「=アクション」のポストが、決して次のように ザ・私は、フォームで投稿するテストjQuery変数を使用して$。postまたは$ .ajaxを呼び出して動作します。 jQueryのクリック機能から2つのテキスト領域をフォームにロードし、method = "post" action = "という形式のPOSTを使用して、回避策を試しましたが、jQuery変数はフォーム変数に転送されてから動作します。

フォームの送信ボタンのみを使用してAJAX呼び出し($ .ajaxまたは$ .post)を実行し、$ _POST配列が$ _POST配列を介してサーバー-PHP配列に渡す方法method = "post" action = "からのフォーム変数で、$ .post()と$ .ajax()から呼び出すことはできず、$ _POST配列にjQuery変数を渡します。 もう1つの質問は、$ _POST配列にフォームなしでjQuery変数を渡す方法です($( "#button")を試してみました)。 $アヤックスでの作業と私は任意のフォーム変数を持っていないとして、技術的に私は、フォームを必要としないので、_POST配列)が空である?

+1

通常のボタンを使用して.clickイベントにバインドしましたか?間違っている可能性がありますが、.ajax呼び出しが処理される前にフォームが送信されている可能性があります。 – bfink

+0

ええ、私はそのtha ajax呼び出しの下に、適切な方法で、別の別のファイルで、そのスクリプトを自分のファイルに入れます。 – elclanrs

+0

@bfink:通常のボタンでクリックしてみましたが、$ _POST配列から変数を取り出すことができませんでした。だから、$ .ajax()や$ .put()を使ってjquery変数を渡す方法が問題です。 )をクリックしてPHPから$ _POST配列にアクセスすると、 –

答えて

0

この

<?php 
if(isset($_POST['action'])){ 
$x = $_POST['xval']; 
$y = $_POST['yval']; 
echo "X-Value......$x"; 
echo "Y-Value......$y"; 
exit; 
} 
?> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script language="javascript" type="text/javascript"> 

      $(function() { 
      $('#button').click(function(){ 
      $.ajax({ 
      type: 'POST', 
      url : 'test.php', 
      data: { 
      action :'ADD' , 
      xval  :'x', 
      yval  :'y' 
     }, 
     success: function(data) { 
      alert(data); 
      } , 
     error : function(){ 
      alert('erroR'); 
      } 
      }) 
     }) 


$("#table").click(function(e1){ 
// Process x, y values from the grid..This part is working fine and tested also 
}) 


    }) 
</script> 
<div class="form"> 
<input type="submit" name="SubmitOption" id="button" value="Next"> 
</div> 

を試してみて、可能jq-をキャッチするために放火犯を使用js構文エラー

+0

返信ありがとうございます...これは動作しません! –

+0

うまく動作します。 http:// nobat。zibakhodrofarzad-ghesti.ir/test.php – max

関連する問題