[英]Can you tell me what this form is doing?
我不明白這個表格在做什么。 我對 Ajax 非常缺乏經驗,對 PHP 只有些經驗。 我了解 ajax.php 在提交表單后運行,但我不明白 onsubmit 部分。
此表單目前返回錯誤“解析 JSON 時出錯”。
<form
action="<?=$module->path?>/ajax.php"
method="post"
enctype="multipart/form-data"
class="tabmin_form"
onsubmit="return handleAjaxForm(this, function(resp){AlertSet.addJSON(resp).show(); tabset_<?=$module?>.<?=$verb=='add'? 'getTab(\''.$tab.'\').reload(false)' : 'getTab(\''.$tab.$workshop->id.'\').close(false)'?>; tabset_<?=$module?>.getTab('view').show();}, function(resp) {AlertSet.addJSON(resp).show();})"
autocomplete="off">
onsubmit
只是內聯事件,理想情況下,為了可維護性,您可能希望將其抽象為丑陋。
將其拉出並格式化,然后分解每一行。
handleAjaxForm
- 需要 3 個參數,第一個是上下文,第二個是成功回調,第三個是錯誤回調。
AlertSet.addJSON(resp).show();
- 將響應傳遞給 AlertSet.addJSON 方法,然后使用 show() 方法鏈接以顯示警報。
以下是 PHP 計算傳遞tabset_module_name.getTab()
方法的內容,或者如果不是$verb == 'add'
它調用.close()
。
tabset_<?=$module?>.<?=$verb=='add'? 'getTab(\''.$tab.'\').reload(false)': 'getTab(\''.$tab.$workshop->id.'\').close(false)'?>;
然后是成功回調的最后一行:
tabset_<?=$module?>.getTab('view').show();
這是調用 show 方法。
return handleAjaxForm(this, function(resp){
//
AlertSet.addJSON(resp).show();
//
tabset_<?=$module?>.<?=$verb=='add'? 'getTab(\''.$tab.'\').reload(false)' : 'getTab(\''.$tab.$workshop->id.'\').close(false)'?>;
//
tabset_<?=$module?>.getTab('view').show();
}, function(resp) {
AlertSet.addJSON(resp).show();
})
長話短說,發生錯誤是因為resp
不是 JSON,請檢查您的服務器響應的內容,最有可能的是 HTML
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.