Javascript Extjs表单提交
我一个小时又一个小时地寻找解决方案,但找不到。我想向PHPAPI函数提交一些东西。看起来是这样的:Javascript Extjs表单提交,javascript,php,extjs,Javascript,Php,Extjs,我一个小时又一个小时地寻找解决方案,但找不到。我想向PHPAPI函数提交一些东西。看起来是这样的: /*global Ext:false */ Ext.onReady(function () { var i = 0; var form = Ext.create('Ext.form.Panel', { title: 'base_entity_id', bodyPadding: 5, width: 350, defaultType: 'text
/*global Ext:false */
Ext.onReady(function ()
{
var i = 0;
var form = Ext.create('Ext.form.Panel', {
title: 'base_entity_id',
bodyPadding: 5,
width: 350,
defaultType: 'textfield',
items: [{
fieldLabel: 'base_entity_id',
name: 'first',
allowBlank: false
}],
buttons: [{
text: 'Reset',
handler: function() {
this.up('form').getForm().reset();
}
}, {
text: 'Submit',
formBind: true,
//only enabled once the form is valid
disabled: true,
handler: function() {
var form = this.up('form').getForm();
}
}],
})
var tabs = Ext.create('Ext.tab.Panel',
{
renderTo: 'tabs',
id: 'tabs',
itemId: 'tabs',
fullscreen: true,
renderTo: document.body,
items:
[
{
title: 'Home',
margin: 40,
items: [form],
},
{
title: 'Results',
itemId: 'Results',
listeners:
{
activate: function (tab)
{
if(i == 0)
{
var panel = Ext.create('Ext.tab.Panel',
{
id: 'tabs2',
width: window,
height: window,
renderTo: document.body,
items:
[
{
title: '1',
itemId: '1',
closable: true,
html: '10329u9iwsfoiahfahfosaofhasohflhsalkfhoihoi3riwoifhoiashfkhasofhosahfsahfahsfosafoisaiohfaoishfoihsaoifasoifsaifhsaoifasoihfoiahsfoihasfoihasoifoisfoihsafoihasfoiasoihasfoihaoifhaoihfoiahfoiaoaffoafoiafsaoafohaoh'
},
{
title: '2',
itemId: '2',
closable: true,
}
]
})
tab.add(panel);
tab.doLayout();
i = 1;
}
}
}
}]
})
}))
但是当我提交时,我没有得到任何回应,有人能帮我吗?我不知道接下来的步骤是什么…我用Ext JS/PHP完成了一个简单的应用程序,下面的代码对我很有用:
myFormPanel.getForm().submit({
clientValidation: true,
url: 'updateConsignment.php',
params: {
id: myFormPanel.getForm().getValues().first
},
success: function(form, action) {
Ext.Msg.alert('Success', action.result.msg);
},
failure: function(form, action) {
switch (action.failureType) {
case Ext.form.Action.CLIENT_INVALID:
Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
break;
case Ext.form.Action.CONNECT_FAILURE:
Ext.Msg.alert('Failure', 'Ajax communication failed');
break;
case Ext.form.Action.SERVER_INVALID:
Ext.Msg.alert('Failure', action.result.msg);
}
}
});
资料来源:
嗯,您没有为表单设置URL,而且“提交”按钮没有“提交”方法,因此我不确定这应该如何工作 您需要将
url
config添加到表单中:
Ext.create('Ext.form.Panel', {
title: 'base_entity_id',
method: 'POST',
url: 'myBackEnd.php' // Or whatever destination you are using for your backend.
...
});
另外,我看到您正在使用formbind:true
,然后检查表单是否有效,一个操作会使另一个操作变得不必要,因此选择一个,两个操作都不需要
将此选项添加到按钮处理程序:
form.submit({
params: {
id: form.getForm().getValues().first
},
success: function(form, action) {
Ext.Msg.alert('Success', 'Your form was submitted successfully');
},
failure: function(form, action) {
Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response');
}
});
然后您应该检查$\u POST['id']
有关表单方法和配置的更多信息,请查看此文档:请发布整个表单的代码,而不仅仅是“提交”按钮。这对我很有用!非常感谢。唯一的问题是,我如何给我的帖子命名?那么,我如何将输入值发布为$_post['id']例如?您可以将
params
添加到您的提交方法中,实际上,请检查文档:。这里都有描述。我已经在我的帖子中添加了params
config,这样你就可以得到一个quik反应的示例.Ty。我想我说得不够清楚。de form的值必须在$_POST['id']变量中是的,你已经说清楚了,我只是想给你举个例子就足够了。你应该发送参数:{id:yourfield\u value}。
我已经更新了我的帖子。很抱歉,我修复了它:)!谢谢你的帮助