0

jqueryとjquery-uiを使い始めました。タブ内にあるフォームを送信しようとすると問題が発生します。「送信」を押すと、ページが自動的に更新され、タブがなくなり、URLがタブの関数URLに変更されます。送信ボタンが機能していて、目的の結果が得られます。ただし、タブと同じページにはありません。

ページが更新されないようにする方法について誰かが何か考えを持っていますか?

私の問題の例:

3つの異なるタブがある「index.php」というページがあります。タブの1つは「フォームの送信」と呼ばれ、POSTメソッドを使用するフォームがあり、そのソースは「form.php」から取得されます。「送信」ボタンを押すと、ページが更新され、URLが「www.example.com」から「www.example.com/form.php」に変わります。結果はそこに表示されますが、ページは「プレーン」です。 、は、タブの下ではなく、通常のページであることを意味します。

私は自分自身を正しく説明したと思います。

ありがとう!

編集:これが私の提出コードです:

$submit = $_POST['submit'];
$name= $_POST['name'];

if($submit){
echo 'submitted <br><br>';
echo "hello $name";
}
4

2 に答える 2

0

2 番目の質問への回答: 「php コードから返されたこの情報を同じタブで実行したい場合はどうすればよいですか?」

PHP スクリプトが値を JSON として返すようにします。 $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
echo json_encode($行); 次に、次のように、返された値で好きなことをJavaScriptに実行させることができます-

    $.ajax({
        url: 'sc_getData.php?id=' + ID,
            type:'GET'
    })
    .done(function(myData) { // data = array returned from ajax 
        myData = JSON.parse(myData);    
        for (var i in tFields){
            thisSourceField = sFields[i];
            thisTargetField = tFields[i];
            targetID = '#' + thisTargetField;
            thisValue = myData[thisSourceField];
            $(targetID).val( thisValue );
            console.log(targetID + ': ' + thisValue);
        }
})

ターゲット フィールドとソース フィールドの配列をセットアップしました。ソース フィールド配列は、php スクリプトによって返されるフィールド名と一致しますが、ターゲット フィールド配列は、返される値が入力されるフォーム フィールド ID と一致します。

于 2015-03-02T16:58:39.963 に答える
0

jQuery でフォーム送信をキャプチャし、preventDefault();で停止します。

$(function(){
  $('#formID').on('submit', function(e){
    e.preventDefault();
    var formSrc = $(this).attr('action');
    var formMethod = $(this).attr('method');
    var formData = $(this).serialize();
    $.ajax({
      url: formSrc,
      type: formMethod,
      data: formData,
      success: function(data){
        //work with returned data from requested file
        alert(data);
      }
    });
  });
}); 

編集:

on();を使用することを選択したことを追加する必要があります。デフォルトとは対照的にsubmit()。これは、フォームが DOM.ready で使用できる場合と使用できない場合があるためです。

于 2012-04-14T04:56:45.947 に答える