5

そこで、表示用の jQuery ダイアログ UI と ajax 送信用の jQuery フォーム プラグインを使用して、複数のフォームを含む html サイトを作成しました。

フォームは次のようになります。

<form id="login_form" action="admin.php" method="post">
    Username: <input type="text" name="username" id="username"/><br/>
    Password: <input type="password" name="password" id="password"/>
</form>

...フォーム オプションは次のようになります。

$('#login_form').dialog({
    buttons:{
        "Login": function(){
        var options = { 
        success: function(data){
            alert(data);
                $(this).dialog("close");
                $('#news_form').dialog("open");
            },
            timeout: 3000,
            fail: function(data){
                alert('fail');
            },
            clearForm: true
        }; 

        // bind form using 'ajaxForm' 
        $('#news_form').ajaxSubmit(options); 
        },
        "Exit": function(){
            $(this).dialog("close");
        }
    }
});

...そしてphpファイルは単純です:

<?php
    $data = 'Herro!';
    echo $data;
?>

問題は、フォームが成功すると、'Herro!' ではなく、送信元の HTML ページを返すことです。私が予想したように。それで、私は何を間違っていますか?

admin.html ファイルと admin.php ファイルの両方が同じディレクトリにあります。

また、Webはxamppを介してローカルで実行されますが、Webサーバーにも配置しようとしましたが、改善はありませんでした。

最終編集: 実際、DOM で別のフォーム オブジェクトを呼び出してデータを送信していたため、アクション プロパティが設定されていないフォームに問題がありました。迅速な解決策をありがとうございました。

4

2 に答える 2

1

結果を JSON オブジェクト (php ファイル内) にラップしてみてください。java スクリプトの最後で、標準の json javascript ライブラリを使用してこの JSON オブジェクトをデコードできるようになりました (ここからダウンロードできます: http://www.JSON.org/ json2.js )。

次に、以下のコード

admin.php:

<?php
$data = json_encode('Herro!');
echo $data;
?>

次に、html(javascript) でこの小さな調整を行うことができます。

 <script>
  var result; //adjustment 1
 $('#login_form').dialog({
buttons:{
    "Login": function(){
    var options = { 
    success: function(data){
            result = JSON.parse(data); //adjustment 2
           alert(result);  //adjustment 3
            $(this).dialog("close");
            $('#news_form').dialog("open");
        },
        timeout: 3000,
        fail: function(data){
            alert('fail');
        },
        clearForm: true
    }; 

    // bind form using 'ajaxForm' 
    $('#news_form').ajaxSubmit(options); 
    },
    "Exit": function(){
        $(this).dialog("close");
        }
}
});
</script>

ページでダウンロードした json2.js ファイルを参照することを忘れないでください。これが役立つかどうか教えてください。

于 2013-07-15T15:24:15.343 に答える