thinkphp ajax 异步 局地 刷新

function add_engineer_modal_check_value() {

       
在本人回想里,从未观望过梨花。但桃花见得挺多,邯郸瘦莫愁湖从来有“三步一桃、五步一柳”的布道,而梨树却少之又少。真正让自家似乎的梨花的,是这一次的七夕节。

    }

       
我随便穿行梨林,风光绮丽,梨花簇拥而至,令人迷茫。随性口占一句:“一枝梨花压海棠!”不知出自什么人手,但信手拈来,甚是押韵、贴切。徒步与人流一起登上高台,俯视梨林,层层梨花铺天盖地,仿若雪白夹杂浅绿的手绢,扣人心弦,难以自拔。

IS_DELETE 判断是还是不是是DELETE方式提交

       
梨花,蔷薇科梨属,梨树的繁花。吃过不少梨:水晶梨、黄梨、丑梨……因植物学知识有限,也只可以望相起名了。但梨花却未曾多见,本次悄然偶遇“梨花节”,成片的梨花让我至极震撼。几步走进,满眼所见之处竟是梨树,整齐的令人咂舌。不怎细数,少说也要百来颗。梨花,素白单瓣、偶尔重叠,花蕊单色嫩黄,蕊心泛着乌黑,沾少许花粉。拈来放置鼻前,深吸一口,却清淡无香,只留植物本有的青涩味。梨树与桃树一般,个头不高,根粗干细,花朵繁盛。听树农讲,大多花朵的,未来总要剪掉的,虽可惜,但那是为了长出又大又好的果实。梨花树干粗糙扭曲,不如杨树笔直,摸起来有点痛苦,好似老人的手骨一般,嶙峋沧桑。我干脆抬头,蓝天背景下的梨花却别有一番风味,与蓝天相辉映,不知是流动的云,依旧沉浸的梨花了……

     }

全总经过是:

$this->ajaxReturn($data);

             $User->create();

预期服务器重临的数据类型。若是不指定,jQuery
将电动根据 HTTP 包 MIME 音信来智能判断,比如XML MIME类型就被辨认为XML。在1.4中,JSON就会变卦一个JavaScript对象,而script则会履行这一个本子。随后服务器端重返的数据会按照这么些值解析后,传递给回调函数。举例:

//2、js校验表单并倡导ajax

呼吁败北时调用此函数。有以下多个参数:jqXHR
(在 jQuery 1.4.x前为XMLHttpRequest) 对象、描述发生错误类型的一个字符串 和
捕获的分外对象。假如暴发了不当,错误音讯(第三个参数)除了获取null之外,还可能是”timeout”, “error”, “abort” ,和 “parsererror”。 当一个HTTP错误发生时,errorThrown 接收HTTP状态的文书部分,比如: “Not Found”(没有找到) 或者 “Internal Server Error.”(服务器内部错误)。 从jQuery 1.5起首, 在error设置可以承受函数组成的数组。每个函数将被逐一调用。
注意:此处理程序在跨域脚本和JSONP格局的请求时不被调用。这是一个 Ajax 伊芙nt。

<button type=”button” class=”btn btn-primary”
id=”add_engineer_modal_submit”
onclick=”add_engineer_modal_submit()” >提交更改</button>

[

出殡请求的地方。

                else

四、总结

    {

async (默许: true)(1.8版本已弃用)

   $user_table->commit();

开卷目录:

            if ($(“input[name='” + this.name + “‘]:checked”).length ==
0)

2.2.2 json和ajax的关系?

  alert( “Request failed: ” + textStatus );

            },

success: function (data) {

            error: function (data) {

//1、php中的form表单

     public function update(){

    {“name”:”uname”,”value”:”alice”},

            type: ‘POST’,

        check_results[‘result’].push(“请输入有效的员工号(可选)”);

……

(链接:http://blog.csdn.net/wangxiaohu\_\_/article/details/7254598

前言:

在php中编辑页面中的表单、提交按钮等;

JSON:JavaScript 对象表示法(JavaScript Object Notation)。是独立于言语之外的积存和置换文本新闻的语法。

                }

相对来说,serializeArray()和末段想要得到的json数组越发相似。只不过必要将包括多少个name-value格局json对象的json数组改写成’first_name’:’Hello’形式的json对象。

serialize和serializeArray的区分是serialize()获取到系列化的表单值字符串,serializeArray()以数组方式出口体系化表单值。举例:

    {

2.2.3 json的编解码和多少转换:

    } else {

//value赋值为off是因为健康的serializeArray()获取到的勾选的checkbox值为on。

            }

  dataType: “html”

    else

}

类型: Boolean

serial_number=SN2&result=%E9%9D%9E%E6%B3%95

json对象转化成数组:

        //弹出错误提示alert

    return check_results;

语法:$.ajax({name:value,
name:value, … }),该参数规定
AJAX 请求的一个或四个名称/值对。

  type: “POST”,

str_replace() 函数用于替换掉字符串中的特定字符,比如替换掉数据转换后剩余的空格、’/nbsp’等

>2.json对象:{uanme:’vic’,mobileIpt:’110′,birthday:’2013-11-11′}

如此就成功了ajax异步局地刷新。

$this->ajaxReturn($data);

1、如若页面有询问form和结果table。

    var $radio = $(‘input[type=radio],input[type=checkbox]’, this);

拔取格局:

      //  var jsonObj = $.parseJSON(jsonStr);

});

            jsonArr[i] = jsonObj[i];

//js方法

data

2.2.2中提到的json对象是更便民与js数组、js字符串或php数组、php字符串进行多少转发的json类型。上边以json对象为例讲解一下json对象与js和php的数据类型转化。

        {

IS_AJAX 判断是还是不是是AJAX提交

jQuery.ajax() 方法用于实施 AJAX(异步 HTTP)请求。(链接:http://www.jquery123.com/jQuery.ajax/

    check_results[‘result’] = [];//保存错误音信

        var json_data = JSON.stringify(check_results[‘data’]);
  //JSON.stringify() 方法将一个JavaScript值转换为一个JSON字符串(ajax要求json对象或json字符串才能传输)

想要将表单数据交由到后台,须求先从表单获取数据/数据集:

3、控制器重返数组给js

  {name: ‘lastname’, value: ‘World’},

  //可以将兼具想要重回的多少放在一个数组中,比如新增的行id、插入数据库的操作是或不是成功

                    alert(data[‘alert’]);

var menuId = $(“ul.nav”).first().attr(“id”);

var serialize_array=$(‘#form’).serializeArray()结果(结果是json对象数组):

if (IS_AJAX)

在意:serialize和serializeArray()函数在处理checkbox时存在不能得到未勾选项的bug,要求自己编排函数改写原函数,举例:

dataType (默认: Intelligent Guess (xml, json, script, or
html))

}

    var temp = {};

    var serialize_array_object =
$(“#add_engineer_modal_form”).mySerializeArray();

1.3 跳转和重定向:

布署情势:convention.php中定义了默许编码类型为DEFAULT_AJAX_RETURN =>  ‘JSON’,

 

其他jQuery-ajax-settings,详见:http://www.jquery123.com/\#jQuery-ajax-settings

举例:

var request = $.ajax({

伸手格局 (“POST” 或 “GET”), 默许为 “GET”。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也得以利用,但仅局地浏览器援救。

return 0;

var serialize_string=$(‘#form’).serialize();

]

……

     }

JSON.parse()用于从一个字符串中剖析出json对象。JSON.stringify()相反,用于从一个对象解析出字符串。

落成部分刷新的门路:

                console.log(“数据交互成功”);

        }

// jquery的方法

    if (check_employee_number(data[’employee_number’]) == false)

{“serial_number”:”SN2″,”result”:”非法”}

默许设置下,所有请求均为异步请求(也就是说这是默认设置为
true )。如若须要发送同步请求,请将此选项设置为
false 。

摘要:ThinkPHP是一个袖珍网站很常用的低端框架,不过不专业的文档和编码导致使用者很不难只知其表不知其里。那里仅就合法文档中从未提及的在thinkphp中采取jquery达成ajax异步交互略作总计。

             $User = M(‘User’);

            {

     var jsonArr = [];

        });

    {

    }

<div class=”modal fade hide” id=”add_engineer_modal” tabindex=”-1″
role=”dialog”>

2、点击查询form的交付,触 发js自定义的submit事件,在submit函数中对得到的表单数据检测后一旦符合必要就传递给控制器,控制器从数据库获取结果数组后回到给ajax的success。对回到给ajax的结果数组,可以成立一个refresh()函数,或直接在success中用jQuery(或任何js)操纵结果table(DOM),比如删除tbody节点下的具有情节,并将结果数组格式化后添加到tbody下边。

正文:

var jsonObj =  JSON.parse(jsonStr)

IS_PUT 判断是不是是PUT形式提交

将json字符串转换为json对象:

 

            data: {“json_data”: json_data},            //ajax必要json对象或json字符串才能传输,json_data只是json字符串而已

    }

                {

                if (data[‘result’] == false)

var data = {};

类型: Object, String

Object {serial_number: “SN2”, result: “非法” }

    $.each($radio, function () {

};

                    $(‘#add_engineer_modal’).modal(‘hide’);

改写js:

error

举例:

                    $(‘#user_list_table
tr’).eq(1).append(‘<td>’+data[‘pk_user_id’]+'</td>’);

 

    if (check_results[‘result’].length == 0)

    }

     console.log(typeof(jsonArr))

发送到服务器的数目。将自动转换为呼吁字符串格式。GET
请求准将附加在 URL 前面。查看 processData 选项表达,以禁绝此活动转换。对象必须为”{键:值}”格式。即使那么些参数是一个数组,jQuery会依据traditional 参数的值,
将电动转接为一个同名的多值查询字符串(查看下边的印证)。注:如 {foo:[“bar1”, “bar2”]} 转换为 ‘&foo=bar1&foo=bar2’。

类型: String

        var jsonStr =
‘[{“id”:”01″,”open”:false,”pId”:”0″,”name”:”A部门”},{“id”:”01″,”open”:false,”pId”:”0″,”name”:”A部门”},{“id”:”011″,”open”:false,”pId”:”01″,”name”:”A部门”},{“id”:”03″,”open”:false,”pId”:”0″,”name”:”A部门”},{“id”:”04″,”open”:false,”pId”:”0″,”name”:”A部门”},
{“id”:”05″,”open”:false,”pId”:”0″,”name”:”A部门”},
{“id”:”06″,”open”:false,”pId”:”0″,”name”:”A部门”}]’;

    var check_results = add_engineer_modal_check_value();

(链接:http://www.cnblogs.com/tangge/p/6554891.html)

type (默认: ‘GET’)

$data[‘content’] = ‘content’;

$posted_json_data_replace_array =
(Array)json_decode($posted_json_data_replace);

            data[x.name] = [data[x.name]];

控制器中的相应操作响应ajax请求,并判断数据后做数据库读写操作,然后对数据库操作结果做出判断,ajaxReturn再次来到js需求的数组;

在地点关于jquery.ajax的介绍中涉嫌了,json可以视作一个ajax函数的dataType,那样数据就会通过json语法传输了。(链接:http://www.cnblogs.com/haitao-fan/p/3908973.html

});

json字符串转化成json对象:

</div>

IS_GET 判断是不是是GET格局交给

当ajax成功再次来到时,js中ajax的success里面使用js重写(或伊始化)需求出示的音讯。

        data[x.name].push(x.value || ”);

$data[‘pk_user_id’] = $data_add_user_result;

 

类型: String

<script type=”text/javascript”>

REQUEST_METHOD 当前交付项目

“json”: 把响应的结果作为 JSON 执行,并回到一个JavaScript对象。在 jQuery 1.4 中,JSON 格式的数额以严峻的不二法门分析,如果格式有不当,jQuery都会被驳回并抛出一个解析错误的百般。(见json.org的越来越多新闻,正确的JSON格式。)

伸手成功后的回调函数。这一个函数传递3个参数:从服务器再次来到的数量,并根据dataType参数进行处理后的数目,一个讲述状态的字符串;还有 jqXHR(在jQuery 1.4.x前为XMLHttpRequest) 对象 。在jQuery 1.5,
成功安装可以接受一个函数数组。每个函数将被逐一调用。那是一个
Ajax 伊芙nt

function add_engineer_modal_submit() {

环境:ThinkPHP3.2.3,jQuery

success

      var jsonObj =  JSON.parse(jsonStr)

request.fail(function(jqXHR, textStatus) {

url (默许: 当前页面地址)

    {“name”:”birthday”,”value”:”2012-11-11″}

        $.ajax({

     console.log(jsonStr1+”jsonStr1″)

         }else{

             $this->success(‘保存完毕’);

var serialize_string_array=$(‘#form’).serializeArray();

        data[x.name] = x.value || ”;

在jquery的ajax函数中,只好传入3体系型的数目:(链接:http://www.cnblogs.com/haitao-fan/p/3908973.html

                {

在js中把id作为数据发送到服务器,
保存一些数额到服务器上, 一旦请求已毕就文告用户。
 如果请求失利,则提示用户。

$posted_json_起名,data = I(‘post.json_data’);

  $(“#log”).html( msg );

    </script>

    return 0;

eval(“(” + status_process+ “)”);

 

             $User->save();

  {name: ‘firstname’, value: ‘Hello’},

小心:The value being encoded can
be any type except a resource(资源文件).All string data must be UTF-8
encoded.(链接:http://php.net/manual/en/function.json-encode.php

$data[‘result’] = true;

    check_results[‘data’] = data;//保存input和select对象

目标:一方面可以针对请求类型作出分化的逻辑处理,其它一端可以过滤不安全的呼吁。
(链接:http://document.thinkphp.cn/manual\_3\_2.html\#request\_method

            }

            },

     for(var i =0 ;i < jsonObj.length;i++){

IS_POST 判断是还是不是是POST情势提交

$data[‘status’]  = 1;

var jsonObj = $.parseJSON(jsonStr)

常量 说明

if (data[x.name] !== undefined) {

在一般的网站中,都亟需运用jquery或者其他框架(比如angular)来拍卖前后端数据交互。在thinkphp在后台也置于了有的函数用于数据交互(比如ajaxReturn())。本文的目标是发掘jquery ajax到thinkphp的内外端数据交互进程。

public function add_engineer() {

2.2.1 json是什么:

下边有二种转换方法:http://blog.jdk5.com/zh/convert-form-data-to-javascript-object-with-jquery/

在js中对php中的按钮事件添加校验和触发函数,在js函数内,若是js对象的格式和内容科学就向控制器url(php中起头化)发起ajax请求;

类型: String

   

var jsonStr1 = JSON.stringify(jsonObj)

[

</fieldset>

         }

                    $(‘#user_list_table
tr’).eq(0).after(‘<tr></tr>’);

$posted_json_data_replace = str_replace(‘”‘, ‘”‘,
$posted_json_data);

那边运用第三种艺术举例,可以起名为change_serialize_to_json():

var serialize=$(‘#form’).serialize()结果(获得一个字符串,用serializeArray()更好,其中汉语都会转换成utf8):

    //check_employee_number是自定义判断员工号函数。

<form id=”add_engineer_modal_form” class=”form-horizontal”>

  data: {id : menuId},

   //处理数据库事务写入,通过判断写入结果来分别ajaxReturn的结果

系统内置了有的常量用于判断请求类型,比如:

输出:{“input1″:””,”textarea”:”234″,”select”:”1″}

                a.push({name: this.name, value: “off”});

得到:a=1&b=2&c=3&d=4&e=5

}

                }

            url: add_engineer_url, //在php中全局定义url,方便使用thinkphp的U方法

}

 

        console.log(jsonObj)

 

class UserController extends Controller{

$(“form”).serializeArray().map(function(x){

Array [ Object, Object ]

            dataType: “json”,

             $this->error(‘不合法请求’);

    //以edit_modal_check_value()为模板

 

});

    {“name”:”mobileIpt”,”value”:”110″},   

});

>1.json字符串:”uname=alice&mobileIpt=110&birthday=1983-05-12″

    });

留意:此处也足以在ajax()中利用success和error参数判断请求结果成功照旧败诉,并施行下一步操作。

  url: “script.php”,

 

                temp[this.name] = “”;

2.2 js与json

一、thinkphp关于ajax的介绍

>3.json数组:

类型: Function( jqXHR jqXHR,
String textStatus, String errorThrown )

//js 的方法

        }

]

  //借使操作数据库成功就回来如下结果。

        if (!data[x.name].push) {

  {name: ‘alias’}, // 值为空

                console.log(“数据交互战败”);

 

    return a;

完整流程:

 

 

$.fn.mySerializeArray = function () {

     var jsonStr1 = JSON.stringify(jsonObj)

分析:ajaxReturn()调用了json_encode()将数值转换成json数据存储格式,常用的数值是数组。

1.2 请求类型:

                    //那里就足以选择data[‘pk_user_id’]了。

}

功用相比鸡肋,在ajax异步交互局地刷新中,不需求有文字提醒的跳转。(链接:http://document.thinkphp.cn/manual\_3\_2.html\#page\_jump\_redirect

二、jQuery Ajax的介绍:

得到:

在js的ajax中,倘若全勤ajax正常交互,就会走success函数,否则会走error函数,一般景况下,error出现的原委都是传输的数目不符合要求。

 

三、使用js操作DOM落成部分刷新:

    var data = change_serialize_to_json(serialize_array_object);

举例:

var json_data=JSON.stringify(data)(结果是json字符串):

\Think\Controller类提供了ajaxReturn方法用于AJAX调用后返回数据给客户端(视图、模板、js等)。并且扶助JSON、JSONP、XML和EVAL各类方法给客户端接受多少(默许JSON)。(链接:http://document.thinkphp.cn/manual\_3\_2.html\#ajax\_return

类型: Function( Object data,
String textStatus, jqXHR jqXHR )

var data=change_serialize_to_json(serialize_array)的结果是(以第三种转换方法为例,结果是json对象):

{

request.done(function(msg) {

        if (!temp.hasOwnProperty(this.name))

         if (IS_POST){

大规模参数:

2.1 官网关于jQuery.ajax()的介绍

……

json对象转化成json字符串:

    var check_results = [];

在js端将表单数据转载为json方式的其余函数:

</form>

            success: function (data) {

<fieldset>

在success中的data就是ajaxReturn中传输的数组,举例:

    var a = this.serializeArray();

1.1 ajaxReturn:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图