0

$.ajax() および $.post() の呼び出しで、インターフェイス エンドでいくつかの変数をサーバー エンドの PHP に送信して処理するという問題が発生しました。これは些細な問題のようで、多くのフォームで報告されていますが、過去数日間のすべてのオプションを試しましたが、成功しませんでした.

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

ユーザーが任意の位置をクリックできるように描画された 4X4 グリッドを使用したシンプルなインターフェイスがあり、正常に動作している jquery 関数を介して 2D 座標値が記録されます。ここで、これら 2 つの xy 変数を PHP に送信して、ユーザー ボタンをクリックして DB に保存する必要があります。ユーザーが複数回クリックできるようにしますが、送信ボタンを使用して、最終的にクリックされた値のみが送信されるようにします。次のように、すべての作業をファイル 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>

PHP コードの上部で値を処理したいので、同じページ、つまり test.php に値を投稿していますが、PHP で $x、$y の値を取得できません。終わり。次のようなフォームで投稿することをテストしました: ">

テストの結果、$_POST は method="post" action=" を使用したフォーム変数のみをロードできるが、jQuery 変数を使用した $.post または $.ajax 呼び出しでは機能しないことがわかりました。 jQuery クリック関数からフォーム内の 2 つのテキスト領域を作成し、メソッド = "post" アクション = でフォーム POST を使用しました。これは、jQuery 変数がフォーム変数に転送されるため機能します。

フォーム送信ボタンのみを使用して AJAX 呼び出し ($.ajax または $.post) を実行し、$_POST 配列を介して jQuery 変数をサーバー PHP に渡す方法method="post" action=" であり、$.post() および $.ajax() から呼び出して、jQuery 変数を $_POST 配列に渡すことはできません。別の質問は、フォームなしで jQuery 変数を渡す方法です。技術的にフォーム変数がないので、フォームは必要ありませんか?

4

1 に答える 1

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>

firebug を使用して、考えられる jq-js 構文エラーをキャッチします

于 2012-04-25T23:27:23.897 に答える