ホームページ >バックエンド開発 >PHPチュートリアル >バックエンドとして PHP+DWZ フレームワークを使用している人はいますか?
最近 DWZ をバックエンドとして使用しましたが、タブ ジャンプが常に失敗することがわかりました。公式ドキュメントには単純すぎると書かれていますが、関連する例はありますか? FORM を送信した後、JSON を使用して説明しますが、戻ることはできません...
公式記述:
DWZ フォーム送信 dwz.ajax.js
·フォーム追加 onsubmit="return validateCallback(this);
· Ajax フォームの送信後に navTab を再ロードするかダイアログを閉じる必要がある場合は、dwz.ajax.js の事前定義メソッド navTabAjaxDone/dialogAjaxDone を使用できます
注: フォームが navTab ページで navTabAjaxDone を使用する場合、フォームはダイアログ ページで DialogAjaxDone を使用します
Form タグに onsubmit="return validateCallback(this, navTabAjaxDone)"
または onsubmit="return validateCallback(this, DialogAjaxDone)" を追加します
· 必要な場合Ajax フォームの送信後に他の処理を実行するには、コールバック関数 xxxAjaxDone をカスタマイズすることもできます。たとえば、フォームが正常に送信された後、現在の navTab を閉じるか、タブをリロードします。
onsubmit="return validateCallback()" を追加します。これを Form タグに追加し、xxxAjaxDone)"
サーバー側の応答
Ajax フォームが送信された後、サーバー側は次の JSON コードを返す必要があります:
{
"statusCode":"200",
"message":"操作は成功しました",
" navTabId":"",
"rel":"",
"callbackType":"closeCurrent",
"forwardUrl":""
}
以下は dwz.ajax.js navTabAjaxDone および DialogAjaxDone のコード スニペットで定義されています:
/**
* navTabAjaxDone は、DWZ フレームワークの事前定義されたフォーム送信コールバック関数です。
* サーバーが navTabId を返すと、その navTab を reloadFlag=1 としてマークすることができ、次回その navTab に切り替えるときにコンテンツが再ロードされます
* callbackType が closeCurrent の場合、現在のタブが閉じられます。
* callbackType="forward " のみ forwardUrl 値が必要です
* navTabAjaxDone のコールバック関数は基本的に汎用です。特別なニーズがある場合は、コールバック関数をカスタマイズすることもできます
* フォームの送信時にのみ、操作が成功した場合、コールバック関数を指定する必要はありません。フレームワークはデフォルトで DWZ.ajaxDone() が呼び出されます
* ccf45681997ff4a71c8830aa9fb071de
*
* フォーム送信後に json データを返す statusCode=DWZ.statusCode.ok 構造は、操作が成功したことを意味し、ページ ジャンプやその他の操作を実行できます。 .error は操作が失敗したことを意味し、エラーの原因を尋ねます
* statusCode=DWZ.statusCode.timeout はセッションがタイムアウトしたことを意味し、次回クリックすると DWZ.loginUrl にジャンプします
* {" statusCode":"200"、"message":"操作が成功しました"、"navTabId":"navNewsLi"、"forwardUrl":""、"callbackType":"closeCurrent "}
* {"statusCode":"300" , "message":"操作が失敗しました"}
* {"statusCode":"301", "message":"セッションタイムアウト"}
*
*/
function navTabAjaxDone(json){
DWZ.ajaxDone(j)息子)
if (json.statusCode == DWZ.statusCode.ok) {F
IF (json.navtabid) {// は、指定された Navtab ページを「再読み込み」する必要がある「再読み込み」としてマークしました。 Navtabidは現在のNavtabページになることはできないことに注意してください。} else {//現在のnavtabページをリロードif( "closecurrent" == json.callbacktype){
}、100);ディスカッション (解決策) へ
私自身のコード
echo '<script type="text/javascript"> var response ={ "statusCode":"200", "message":"操作成功", "navTabId":"", "callbackType":"forward", "forwardUrl":"main.php" } </script>';}?>