2011-12-21 6 views
1

Я уже некоторое время работал с ExtJS и никогда не сталкивался с проблемой отправки формы. Но теперь есть форма, которая не делает POST-вызов файлу php. И возвращает мне неудачу.Странный вопрос с формой с ExtJS

onSaveBtn : function() { 
    var formPanel = this.getComponent('planillaForm'); 

    if (formPanel.getForm().isValid()) { 
     var vals = formPanel.getValues(); 

     var msg = String.format(
      this.msgs.saving, 
      vals.codigo 
      ); 

     this.el.mask(msg, 'x-mask-loading'); 

     formPanel.getForm().submit({ 
      url  : 'sistema/planilla/setPlanilla.php', 
      scope : this, 
      success : this.onFormSaveSuccess, 
      failure : this.onFormSaveFailure 
     }); 
    } 
    else { 
     Ext.MessageBox.alert(
      'Error!', 
      this.msgs.errorsInForm 
      ); 
    } 
} 

Я всегда работал с этим «шаблоном» для отправки формы, и он никогда не проигрывал. Я не знаю, что происходит, но он никогда не делает POST, и он переходит к функции сбоя «onFormSaveFailure». Я изменил URL и ничего. Я не знаю, что делать, и я очень спешу. Пожалуйста помоги.

ответ

1

Возможно, произошла одна из многих вещей. Вам нужно будет отладить его дальше. Это шаги, которые я бы сделал:

  1. Убедитесь, что URL-адрес действителен. Я хотел бы использовать скрипач (или аналогичную программу), чтобы посмотреть на мой запрос. Убедитесь, что URL, который я пытаюсь отправить, действителен. Вероятная проблема заключается в том, что вы используете относительный путь для своего URL-адреса, он использует текущий URL-адрес в качестве контекста.

  2. Убедитесь, что файл php попадает (точка останова, заявление печати ...).

  3. Убедитесь, что файл php не сбой, исключения, сброшенные со стороны сервера, приведут к вызову функции отказа.

  4. Убедитесь, что файл php возвращает то, что указывает на успех. Если возвращаемая строка JSON имеет {success: false}, запрос будет считаться неудачным.

  5. Функция this.onFormSaveFailure принимает два параметра: «форма» и «действие», объект «действие» имеет «failType», использует отладчик javascript, чтобы посмотреть на значение этого.

+0

Ajax-вызов не делает POST в файл php. Я уверен в этом, потому что я вижу, когда вызов выполняется с помощью firebug, даже если файл не существует. Странно, что он вызывает вызов Ajax, но без загрузки файла, и он переходит к функции сбоя. – daniel

+0

У вас есть отладчик javascript? Каков отказType внутри функции отказа? – Chao

+0

Это не делает исключение javascript. Он переходит к функции сбоя Ajax submit, как если бы серверный код возвращал «success: false». Если возникла проблема с отправкой формы, она бы перескочила на: else {Ext.MessageBox.alert ('Error!', This.msgs.errorsInForm); } – daniel

Смежные вопросы