Вы можете сказать мне, что делает эта форма? - PullRequest
0 голосов
/ 04 августа 2020

Я не понимаю, что делает эта форма. У меня очень мало опыта работы с 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">

1 Ответ

0 голосов
/ 04 августа 2020

onsubmit - это просто встроенное событие, в идеале, для удобства обслуживания, вы можете абстрагироваться от него как его уродливого.

Вытяните его и отформатируйте, а затем разбейте каждую строку.

handleAjaxForm - принимает 3 аргумента, первый - контекст, второй - обратный вызов успеха, а третий - обратный вызов ошибки.

AlertSet.addJSON(resp).show(); - передается соответственно методу AlertSet.add JSON, а затем цепляется, чтобы показать предупреждение с помощью метода show ().

следующее - PHP определение того, что передать методу tabset_module_name.getTab() или в случае not $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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...