HTML5从入门到精通——Sencha Touch篇(5)
沉沙 2018-06-20 来源 : 阅读 1253 评论 0

摘要:本次我们来接触一下Sencha Touch中的AJAX以及相应的后台PHP程序。希望阅读本篇文章以后大家有所收获,帮助大家对HTML5的理解更加深入。

本次我们来接触一下Sencha Touch中的AJAX以及相应的后台PHP程序。

实现表单的AJAX异步提交

需要设定的参数:

url:表单提交时的目标URL地址

standardSubmit:使用布尔值指定表单提交方式(true为同步,false为异步,默认为false)

 

baseParams属性可以在表单中指定

var formPanel = Ext.create(‘Ext.form.Panel’, {
baseParams:{
id:’1’,
name:’text’
}
})

 

表单提交的基本代码:

launch:function(){
var formPanel = Ext.create(‘Ext.form.Panel’,{
id:’formPanel’,
scrollable:’vertical’,
url:’filmSave.php’,
items:[
{
xtype:’panel’,
layout:{
type:’hbox’,
pack:’end’
},
defaults:{
xtype:’button’
},
items:{
{
text:’提交’,
handler:function(){
formPanel.submit();
}
},
{
text:’重置’,
handler:function(){
formPanel.reset();
}
}
}
}
],
listeners:{
submit:function(form,result){
Ext.Msg.alert(‘提交成功!’);
},
exception:function(form,result){
Ext.Msg.alert(‘提交失败!’);
}
}
});
Ext.Viewport.add(formPanel);
}

 

submit事件:第一个参数为执行提交的表单面板组件,第二个参数代表服务器端做出的响应对象

exceeption事件:抛出异常

 

waitMsg:表单提交时等待信息

formPanel.submit({
waitMsg:{message:’正在提交...’, cls:’demos-loading’}
})

 

success为当提交后调用的回调函数,服务器通过返回”success”属性来标识提交是否成功,并可添加其他信息

{
“success”:false,
“msg”:’发生错误’,
“errors”:[
{
“field”:”name”,
“message”:”输入的名称在数据库中已存在”
},
{
“field”:”title”,
“message”:”输入的电影标题在数据库中已存在”
}
]
}

 

Sencha Touch中提供了各种表单验证

 

在表单中输入一些信息之后,可以使用getValues()方法获取

var obj = formPanel.getValues();

返回的是一个对象,如下:

{
name:”Tom”,
sex:”male”,
......
}
var obj = formPanel.getValues(true)//只返回有效组件

在之前已经介绍过建立数据模型的方法,要想把用户输入表单的信息实例化一个对象,代码如下:

var obj = formPanel.getValues();
var model = Ext.create(‘User’, obj);//User为一个数据模型

这就相当于:

var model = Ext.create(‘User’,{
name:’Tom’,
sex:’male’,
......
})

 

在建立数据模型的时候可以设定验证方法:

Ext.define(‘User’,{
extend:’Ext.data.Model’,
config:{
field:[//省略],
validations:[
//这里是表单验证内容,type为内置的表单验证类型
//必填项
{type:’presence’,field:’name’,message:’姓名必须输入’},
//填的内容不能是list中的内容
{type:’exclusion’,field:’name’,
list:[‘admin’,’administrator’,’管理员’],message:’不能使用这个姓名’},
//填的内容必须包含在list中
{type:’inclusion’,field:’sex’,
list:[‘male’,’female’],
message:’必须选择性别’},
//按照正则表达式匹配内容
{type:’format’,field:’url’,
matcher:......,
message:’必须输入有效的网址’}
]
}
})

 

对应的后台php代码

<?php
$name = formatStr($_REQUEST[‘name’]);
$sex = $_REQUEST[‘sex’];
//其他取值类似
//数据库配置代码略
$result = mysql_query(“SELECT * FROM users where name=’”.$name.”’”,$link);
if(mysql_num_rows($result) > 0){
echo ‘{“success”:false,
“errors”:[{“message”:’.json_encode(“该用户名已存在”).’}]}’;
}else{
    //插入数据
$sql = “insert into users(name, sex, password, age, email, url, memo)”;
$sql = $sql.”values(”;
$sql = $sql.”’”.$name.”’,”;
//......省略其他
mysql_query($sql);
}
function formatStr($str){
return trim(str_replace(“’”,”’’”,$str));
}
?>

 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标WEB前端HTML5/CSS3频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程