最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用$.get()根據(jù)選項的不同從數(shù)據(jù)庫異步請求數(shù)據(jù)

 更新時間:2014年04月06日 17:23:56   作者:  
本例實現(xiàn)的是這樣的一個效果:當從select下拉框選擇編程語言時時,根據(jù)選項的不同,異步請求不同的函數(shù)API描述,需要的朋友可以參考下
Ajax極大地改善了用戶體驗,對于web2.0來說必不可少,是前端開發(fā)人員必不可少的技能。

這個例子是這樣的,當從select下拉框選擇編程語言時時,根據(jù)選項的不同,異步請求不同的函數(shù)API描述。這種功能在現(xiàn)在web應用程序中是及其常見的。

我們先來看一下$.get()的結(jié)構(gòu)
復制代碼 代碼如下:

$.get(url, [, data], [, callback] [, type])
//url:請求的HTML頁的URL地址;
//data(可選),發(fā)送至服務(wù)器的key/value數(shù)據(jù)作為QueryString附加到請求URL中;
//callback(可選):載入成功時的回調(diào)函數(shù)(只有當Response的返回狀態(tài)是success才調(diào)用該方法;
//type(可選):服務(wù)器端返回內(nèi)容格式,包括xml,html,script,json,text和_default

首先創(chuàng)建examplDB數(shù)據(jù)庫,建立language和functions表,SQL如下
復制代碼 代碼如下:

CREATE TABLE IF NOT EXISTS language (
id int(3) NOT NULL AUTO_INCREMENT,
languageName varchar(50) NOT NULL,
PRIMARY KEY (id));

CREATE TABLE IF NOT EXISTS functions (
id int(3) NOT NULL AUTO_INCREMENT,
languageId int(11) NOT NULL,
functionName varchar(64) NOT NULL,
summary varchar(128) NOT NULL, //功能概述
example text NOT NULL, //舉例
PRIMARY KEY (id));

下面是插入數(shù)據(jù)的SQL
復制代碼 代碼如下:

INSERT INTO language (id, languageName) VALUES
(1, 'PHP'),
(2, 'jQuery');

INSERT INTO functions (id, languageId, functionName, summary, example) VALUES
(1, 1, 'simplexml_load_file', 'Interprets an XML file into an object ', '$xml = simplexml_load_file(''test.xml'');\r\nprint_r($xml);\r\n'),
(2, 1, 'array_push', 'Push one or more elements onto the end of array', '$arrPets = array(''Dog'', ''Cat'', ''Fish'' );\r\narray_push($arrPets, ''Bird'', ''Rat'');\r\n'),
(3, 1, 'ucfirst', 'Make a string''s first character uppercase', '$message = ''have a nice day;\r\n$message = ucfirst($message); // output: Have A Nice Day\r\n'),
(4, 1, 'mail', 'used to send email', '$message = "Example message for mail";\r\nif(mail(''test@test.com'', ''Test Subject'', $message))\r\n{\r\n echo ''Mail sent'';\r\n}\r\nelse\r\n{\r\n echo ''Sending of mail failed'';\r\n}\r\n'),
(5, 2, '$.get', 'Load data from the server using a HTTP GET request.', '$.ajax({\r\n url: url,\r\n data: data,\r\n success: success,\r\n dataType: dataType\r\n});\r\n'),
(6, 2, 'hover', 'hover method accepts 2 functions as parameters which execute alternativelt when mouse enters and leaves an element.', '$(selector).hover(\r\nfunction()\r\n{\r\n//executes on mouseenter\r\n},\r\nfunction()\r\n{\r\n//executes on mouseleave\r\n});'),
(7, 2, 'bind', 'Attach a handler to an event for the elements.', '$(element).bind(''click'', function() \r\n{\r\n alert(''click happened'');\r\n});\r\n'),
(8, 2, 'jQuery.data', 'Store arbitrary data associated with the specified element.', 'jQuery.data(element, key, value);'),
(9, 1, 'add class', 'Adds a class', '(''p'').addClass(''myClass yourClass'');');

都是比較簡單的SQL操作,一切準備就緒后就可以編碼了??偣灿袃蓚€腳本文件,一個index.php,一個results.php用于處理請求,先編寫index.php
復制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
body {font-family:"Trebuchet MS", Verdana, Arial; width:600px;}
div {background-color:#f5f5dc;}
</style>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<?php
$mysqli = new mysqli('localhost', 'root', 'passwd', 'exampledb');//將passwd改為你的數(shù)據(jù)庫密碼
if (mysqli_connect_errno())
{
die('Unable to connect');
}
else
{
$query = 'SELECT * FROM language'; //這里開始是核心代碼,都是很簡單的語句,主要是在language中取得記錄,然后循環(huán)輸出到select選項
if ($result = $mysqli->query($query))
{
if ($result->num_rows > 0)
{
?>
<p>
Select a languae
<select id="selectLanguage">
<option value="">select</option>
<?php
while($row = $result->fetch_assoc()) //以編程語言的id作為option的value,以語言作為選項。
{
?>
<option value="<?php echo $row['id'];?>"><?php echo $row['languageName']; ?></option>
<?php
}
?>
</select>
</p>
<p id="result"></p>
<?php
}
else
{
echo 'No records found';
}
$result->close();
}
else
{
echo 'Error in query: $query.'.$mysqli->error;
}
}
$mysqli->close();
?>

<script type="text/javascript">
$(function() {
$('#selectLanguage').change(function() {
if($(this).val() == '') return;
$.get(
'results.php',
{id: $(this).val()},
function(data) {
$('#result').html(data);
}
);
});
});
</script>
</body>
</html>

引入jquery,給#selectLanguage添加change事件處理程序,并放在index.php中body結(jié)束前
復制代碼 代碼如下:

<script src="scripts/jquery.js"></script>
<script type="text/javascript">
$(function() {
$('#selectLanguage').change(function() {
if($(this).val() == '') return;
$.get(
'results.php',
{id: $(this).val()},
function(data) {
$('#result').html(data);
}
);
});
});
</script>

下面就是results.php了。它先連接到數(shù)據(jù)庫,然后取得index.php發(fā)送到id,根據(jù)id在數(shù)據(jù)庫里選擇相應的編程語言記錄,并將每條記錄放到ul列表中
復制代碼 代碼如下:

<?php
$mysqli = new mysqli('localhost', 'root', 'passwd', 'exampledb'); //這里也要用你的數(shù)據(jù)庫密碼改寫passwd
$resultStr = '';
$query = 'SELECT functionName, summary, example FROM functions where languageId ='.$_GET['id']; //$_GET['id']就是index.php中用$.get()發(fā)送的id
if ($result = $mysqli->query($query))
{
if ($result->num_rows > 0)
{
$resultStr .= '<ul>';
while($row = $result->fetch_assoc()) //和index.php的語句差不多,也是先從數(shù)據(jù)庫取得記錄,然后格式化輸出
{
$resultStr .= '<li><strong>'.$row['functionName'].'</strong>-'.$row['summary'];
$resultStr .= '<div><pre>'.$row['example'].'</pre></div>'.'</li>';
}
$resultStr .= '</ul>';
}
else
{
$resultStr = 'Nothing found';
}
}
echo $resultStr;
?>

現(xiàn)在所有的代碼都編寫好了,看下最后的效果
 
這樣簡單的效果就出來了。

相關(guān)文章

  • Ajax中responseText返回的是一個頁面而不是一個值

    Ajax中responseText返回的是一個頁面而不是一個值

    用response返回的內(nèi)容卻是一個頁面的,可以將String 類型改為void 這樣返回的就不是整個頁面了
    2014-05-05
  • ajax上傳多圖到php服務(wù)器的方法

    ajax上傳多圖到php服務(wù)器的方法

    這篇文章主要為大家詳細介紹了ajax上傳多圖到php服務(wù)器的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 使用Nginx 反向代理來避免 ajax 跨域請求的方法

    使用Nginx 反向代理來避免 ajax 跨域請求的方法

    這篇文章主要介紹了使用Nginx 反向代理來避免 ajax 跨域請求的方法的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • 解決AJAX請求中含有數(shù)組的辦法

    解決AJAX請求中含有數(shù)組的辦法

    這篇文章主要給大家介紹了如何解決AJAX請求中含有數(shù)組的問題,文中給出了詳細的示例代碼,相信對大家的理解和學習很有幫助,有需要的朋友們下面跟著小編一起來看看吧。
    2016-12-12
  • Ajax二級聯(lián)動菜單實現(xiàn)原理及代碼

    Ajax二級聯(lián)動菜單實現(xiàn)原理及代碼

    二級聯(lián)動菜單,一個多么方便且實用的用戶交互功能,有需求的朋友可以參考下本文,或許對你的菜單知識深入學習有幫助,好了,閑話不多說,看代碼吧
    2013-01-01
  • IE8用ajax訪問不能每次都刷新的問題

    IE8用ajax訪問不能每次都刷新的問題

    這篇文章主要介紹了IE8用ajax訪問不能每次都刷新的問題 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • Ajax 跨域如何實現(xiàn)

    Ajax 跨域如何實現(xiàn)

    這篇文章主要介紹了Ajax 跨域如何實現(xiàn)的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-05-05
  • $.ajax()常用方法詳解(推薦)

    $.ajax()常用方法詳解(推薦)

    AJAX 是一種與服務(wù)器交換數(shù)據(jù)的技術(shù),可以在補充在整個頁面的情況下更新網(wǎng)頁的一部分。接下來通過本文給大家介紹ajax一些常用方法,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-07-07
  • Ajax技術(shù)組成與核心原理分析

    Ajax技術(shù)組成與核心原理分析

    這篇文章主要介紹了JavaScript性能優(yōu)化之函數(shù)節(jié)流(throttle)與函數(shù)去抖(debounce),感興趣的小伙伴們可以參考一下
    2016-08-08
  • AJAX驗證數(shù)據(jù)庫內(nèi)容并將值顯示在頁面

    AJAX驗證數(shù)據(jù)庫內(nèi)容并將值顯示在頁面

    光標離開文本框,在本頁面的相應地方獲取數(shù)據(jù)庫中改值所對應的其他數(shù)據(jù),相應的實現(xiàn)代碼如下,感興趣的朋友可以看看
    2014-08-08

最新評論

五指山市| 邵阳市| 郸城县| 丹巴县| 霍山县| 漾濞| 大同县| 姜堰市| 福海县| 毕节市| 阿瓦提县| 张家口市| 丹江口市| 南江县| 什邡市| 贡觉县| 若羌县| 得荣县| 安岳县| 彭山县| 镇坪县| 武安市| 东至县| 渭源县| 富锦市| 稷山县| 三都| 荃湾区| 屏南县| 双辽市| 攀枝花市| 武定县| 沧源| 绥德县| 宝应县| 凉山| 中江县| 芮城县| 钦州市| 枞阳县| 定安县|