首先,我想要實這樣一個功能,
當選擇一個下拉框時,讓其它三個文本框得到從服務器上返回的值!也就把返回的值,賦給那三個文本框!
我用的是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_encode和 json_decode(跟序列化很像啦)。一個編碼,一個解碼。先看看編碼的使用:
當選擇一個下拉框時,讓其它三個文本框得到從服務器上返回的值!也就把返回的值,賦給那三個文本框!
我用的是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_encode和 json_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,