zoukankan      html  css  js  c++  java
  • PHP ajax实现数组返回

    首先,我想要实这样一个功能,

    当选择一个下拉框时,让其它三个文本框得到从服务器上返回的值!也就把返回的值,赋给那三个文本框!

    我用的是jquery+php!! 由于我前台,后台,js,数据库采用的都是gb2312编码,所以,走了些弯路!

    js代码:


    $("#logname").change(function(){
            
            if($("#logname").val() != ""){
                $.ajax({
                    url: "ajax.php?ac=kl_tjyj",
                    type:'POST',
                    complete :function(){}, //請求完回調的函數,無論成功與失敗都會調用,在success後
                    dataType: 'json', //會把回傳的字符串自動轉換為json對象!
                    data: {logname: $("#logname").val()},
                    
                    error: function() { alert('Ajax request 發生錯誤');},
                    
                    success: function(response) {
                        
                    $("#yname").attr("value",response.yname);
                    $('#zubie').val(response.zubie);
                    $('#zhiwu').val(response.zhiwu);
                    alert('添加成功!');
        
                    }
               });
                
            }
        });    


    php代码如下:


    if (get("ac") == 'kl_tjyj') {

        if(isset($_POST['logname'])) {
            $queryString = post('logname');
            $queryString = iconv( 'UTF-8', 'gb2312' , $queryString);//解决传递过来的参数为中文乱码

            if(strlen($queryString) >0) {

                $sql = "select jj_truename,zhiwu,zubie from jj_ren where jjrenname='$queryString' limit 0,1";
                $result = $h->sql($sql);
                if(mysql_num_rows($result)) {
                    while($row = mysql_fetch_array($result)){
                        $arr = array ('yname'=>iconv( 'gb2312', 'UTF-8' , $row['jj_truename']),'zubie'=>iconv('gb2312','UTF-8',$row['zubie']),'zhiwu'=>iconv('gb2312','UTF-8',$row['zhiwu']));
                    }
                    echo json_encode($arr);
                } else {
                    echo '<script>alert("没有找到该人的");</script>';
                }
            } else {
                echo '<script>alert("提交的数据不能为空!");</script>';
            } 
        } else {
            echo '';
        }

    }



    附言:


    JSON为何物?我就不重复概念了。通俗的说,它是一种数据的存储格式,就像PHP序列化后的字符串一样。它是一种数据描述。比如我们将一个数组 序列化后存放,就可以很容易的反序列化后应用。JSON也是如此,只不过他搭建的是客户端Javascript和服务端PHP的交互桥梁。我们用PHP生 成JSON后的字符串,然后把这个字符串传给前台Javascript,Javascirpt就可以很容易的将其反JSON然后应用。说通俗点,它真的很 像数组。
    言归正传,如何使用JSON。PHP5.2开始内置了JSON的支持。当然,如果低于这个版本的话,那么市面上有很多PHP版本的实现,随便下一个用就OK啦。现在主要是说说PHP内置支持的JSON。很简单,两个函数:json_encodejson_decode(跟序列化很像啦)。一个编码,一个解码。先看看编码的使用:
    <?php
    $arr = array(
    'name' => '陈毅鑫',
    'nick' => '深空',
    'contact' => array(
    'email' => 'shenkong at qq dot com',
    'website' => 'http://www.chenyixin.com',
    )
    );
    $json_string = json_encode($arr);
    echo $json_string;
    ?>
      很简单的将一个数组JSON了。需要指出的是,在非UTF-8编码下,中文字符将不可被encode,结果会出来空值,所以,如果你使用gb2312编写PHP代码,那么就需要将包含中文的内容使用iconv或者mb转为UTF-8再进行json_encode,
     
     
     
     
     
  • 相关阅读:
    JS BOM对象 History对象 Location对象
    JS 字符串对象 数组对象 函数对象 函数作用域
    JS 引入方式 基本数据类型 运算符 控制语句 循环 异常
    Pycharm Html CSS JS 快捷方式创建元素
    CSS 内外边距 float positio属性
    CSS 颜色 字体 背景 文本 边框 列表 display属性
    【Android】RxJava的使用(三)转换——map、flatMap
    【Android】RxJava的使用(二)Action
    【Android】RxJava的使用(一)基本用法
    【Android】Retrofit 2.0 的使用
  • 原文地址:https://www.cnblogs.com/sunxun/p/5218870.html
Copyright © 2011-2022 走看看