$.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 変数を渡す方法です。技術的にフォーム変数がないので、フォームは必要ありませんか?