ホームページ バックエンド開発 PHPチュートリアル Smarty と Ajax を組み合わせて非更新ゲストブックを実装する example_PHP チュートリアル

Smarty と Ajax を組み合わせて非更新ゲストブックを実装する example_PHP チュートリアル

Jul 21, 2016 pm 03:58 PM
ajax smarty リフレッシュする 基本 成し遂げる タイトル 組み合わせる

タイトルを読んだ後は、ゲストブック、非常に基本的な内容だと思われるかもしれません。 Smarty の使い方がわからない人はいませんか?心配しないでください。私が表現したいのはプログラミングのアイデアと構造であり、私がやっていることの意味を証明することではなく、初心者が Smarty と ajax を学ぶきっかけになると信じています。当初は ajax で実行していましたが、残念ながらデバッグが成功しなかったため、JS を手書きで実行する必要がありました。しかし、それは問題ではありません。それでもある程度の価値はあります。ソースコードをダウンロードして、サイトの構造をご自身で読んでください。コードは長くないので、ゆっくり説明してください。
PHP5 が利用可能になった現在、OO (オブジェクト指向) は非常に人気があるので、ここではお見逃しなく。まず、OO を使用してデータベース操作と接続を実装する方法を見てみましょう。
[php]
< ?php
/***************************

ページ: dbclass.php
作成者: Hui Boss
機能: データベース操作クラスの定義
****** ******************* ***
//コンストラクター、関数の作成: データベース接続と対応するデータベースの選択 public function
__construct
(){
require(

' config.inc.php'


); mysql_connect
($ dbhost
,
$dbuser
,
$dbpassword) または die()
「エラーです!」
); (
"SET NAMES 'GBK'"
); //SQL文関数を実行 public function query($sq l return /結果を取得する配列関数を設定 public 関数 loop_query(
L $ result$) { Return
Mysql_fetch_array
( $ Result
);



関数 d__Destruct

() {
戻り値Mysql_Close () }}
? ; このクラスの特徴は何ですか?まず、__construct() がコンストラクター関数であることを紹介します。コンストラクター関数とは何ですか?平たく言えば、クラスがインスタンス化された後に自動的に実行される関数です。これは、オブジェクトを指すメソッドがない場合に、そのオブジェクトを自動的に破棄する機能です。これには、通常、ファイルを閉じる、データベース接続を閉じるなどのいくつかの終了操作が含まれています。 ?それは正しい!在类实例化的时候自动执行带有数据库连接方法的构造函数,在实例销毁的时候执行关闭数据库连接的析构函数,对于一些基本数据操作我们只要new一个$db对象,然后$db->query()...是不是很方便,当然,这只是一个简单的例子,你还可以继续扩展。来看看 config.inc.php里面是什么:
很容易对不对,感兴趣就接着看吧^_^,来看下模板文件:

php
/*************************

页面:config.inc.php
作者:辉老大
功能:数据库参数变量设定
$dbhost:主机名
$dbuser:连接帐户
$dbpassword:连接密码
$dbname:数据库名
*************************/
$dbhost = "localhost"
;
$dbuser = "root"
;
$dbpassword = "7529639"
;
$dbname = "testdb"
;
?>
 




<{$title}>





<{*这里显示留言内容*}>
<{section name=loop loop=$bookinfo}><{*循环显示留言*}>
用户名:<{$bookinfo[loop].username}> 内容:<{$bookinfo[loop].comment}>


<{/section}>



  
   
      
      
   
   
      
      
   
  
用户名:
留言内容:

  
  




模板中的内容在<{}>中的一会会被PHP替换掉,这就实现了美工和程序员的分工,不错吧有关Smarty的内容还请参考手册,这里就不便多说。来看下页面是怎么输出模板的吧:

php
/******************************************
タイトル:Smarty と Ajax 掲示板を組み合わせた
著者:leehui1983(Hui Boss)
ページ名:index.php
終了日:2006-12-17
************************ * ****************/

require('./libs/Smarty.class.php');
//smarty クラス ライブラリが含まれています
require('./inc/dbclass.php');
//データベースオペレーション クラスが含まれています

$db=新しい db();
//データベース操作インスタンスを生成
$smarty
= new Smarty();
//smartyオブジェクトをインスタンス化する
$スマート
->
template_dir = "./templates";//templateディレクトリを設定
$smarty
-> compile_dir = " 。 /templates_c";
//コンパイルディレクトリを設定します
$smarty
->キャッシュ = false;
//キャッシュ方法を設定します /* ************************************************* * ** 左右の境界文字、デフォルトは {} ですが、実際のアプリケーションでは JavaScript
と競合しやすいため、<{}> に設定することをお勧めします。
************************************************ ** ****/
$smarty->left_delimiter = "<{"

$smarty-> right_delimiter = "}>"
;
); //初期のページを設定 Smartyによって表示されるメッセージコンテンツ$rt= $db->query
(
"select * from bookinfo order by id desc"
); while($rs=$db-> loop_query(
$rt
)){ $array[]=array("ユーザー名"=>$rs) ['ユーザー名'
],
"コメント"
=&g t; $rs['コメント']); } $smarty-> ;割り当てる("bookinfo",
$array

);
unset ($array);//配列変数を破棄 $スマート-> ;
display(
"index.t pl");
// ./templatesの下にあるindex.tplテンプレートをコンパイルして表示します
?> まだありますページの例についてはたくさんのコメントがあります。Smarty マニュアルを参照してください これはとても簡単です! !あはは~~~~それでは、ajax を紹介します。ここでは、基本的な開発フレームワークを使用して ajax を実装します。ajax についての知識については、非常に人気のあるオンラインの電子チュートリアル Ajax Development Briefvar http_request=false を参照することをお勧めします。 ; function send_request(url){//初期化、処理関数、リクエストを送信する関数を指定します http_request=false;//XMLHttpRequest オブジェクトの初期化を開始しますif(window.XMLHttpRequest){//Mozilla ブラウザ http_request=new XMLHttpRequest( );
if(http_request.overrideMimeType){//MIME カテゴリを設定 http_request.overrideMimeType("text/xml"); }
}
else if(window.ActiveXObject){///IE ブラウザ try{ http_request= new ActiveXObject("Msxml2.XMLHttp");
}catch(e){
try{ http_request=new ActiveXobject("Microsoft.XMLHttp"); }catch(e){}
}
}
if(!http_request ) {//例外、オブジェクト インスタンスの作成に失敗しました
window.alert("XMLHttp オブジェクトの作成に失敗しました!");
return false;
}
http_request.onreadystatechange=processrequest;
//リクエストメソッド、URL、次のコードを同期的に実行するかどうかを決定します
http_request.open("GET",url,true);
http_request .send (null);
}
//返された情報を処理する関数
function processrequest(){
if(http_request.readyState==4){// オブジェクトのステータスを決定する
if(http_request.status==200) {//情報が正常に返されました。情報の処理を開始します
document.getElementById(reobj).innerHTML=http_request.responseText;
}
else{//ページは正常ではありません
alert("リクエストしたページは正常ではありません!") ;
}
}
}
function send(obj){
var f=document.book;
var username=f.username.value;
var comment=f.comment.value;
if(username=="" ||comment== ""){
document.getElementById(obj).innerHTML="すべて入力してください。";
return false;
}
else{
send_request('checkbookinfo.php?username='+username+'&comment='+comment);
reobj=obj;
}
}

この方法「公開」ボタンをクリックすると、データはサーバーによって非同期に処理され、メッセージを送信した後、従来のページにジャンプするのではなく、すぐにメッセージを確認できるようになります。では、データはどこに転送されて処理されるのでしょうか? ここを見てください:
php

/******************************************
タイトル: Smarty と Ajax 掲示板の組み合わせの例著者:leehui1983(フイボス) ページ名:checkbookinfo.php
終了日:2006-12-17
************************** * **************/

header

(
) Content-type: text/html;charset= GBK");//中国語の文字化けを回避するための出力エンコーディング
include(
'./inc/dbclass.php'
); //データベース操作クラスを含む
$db
=new
db();//データベース操作インスタンスを生成
$sql
=
」を書籍情報に挿入value(0,'". $comment."','".$ユーザー名."')";
$db
->
que ry( $sql);
$querysql
=
"select * from bookinfo order by id desc" ;
$結果
=
$db-> ;query($querysql); while(
$rows
=
$db -> loop_query ($result)) {//リアルタイム更新のためにメッセージリストを印刷します //$arr.="
ユーザー名: {$rows['username']} コンテンツ: {$rows['comment']}< p>";
echo
'ユーザー名: '
.$rows['ユーザー名'].' コンテンツ: '.$rows [ 'コメント'].'

'; }

//echo $ar r;
?>

それでは、最初にデータを挿入して、更新されたデータを JS で整理して表示した後、AJAX は非常に優れています。基本的には以上です。iframe を追加することで何が変わるか考えたことはありますか?チャット ルームを更新する必要はありません。自分の能力を使って外観を実現します。この例では、OO、AJAX、SMARTY を使用しています。皆さんに気に入っていただければ幸いです。転載する場合は、著作権を明記してください。最後に、これが効果画像です~~~~

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/317700.html技術記事タイトルを読んだ後は、ゲストブック、非常に基本的な内容だと思われるかもしれません。 Smarty の使い方がわからない人はいませんか?心配しないでください、私が表現したいのはプログラミングのアイデアや構造であって…ではありません
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11 で F5 更新キーが機能しない Windows 11 で F5 更新キーが機能しない Mar 14, 2024 pm 01:01 PM

Windows 11/10 PC では F5 キーが正しく機能しませんか? F5 キーは通常、デスクトップまたはエクスプローラーを更新したり、Web ページをリロードしたりするために使用されます。ただし、読者の中には、F5 キーがコンピュータを更新していて、正しく動作しないと報告している人もいます。 Windows 11 で F5 更新を有効にする方法は? Windows PC を更新するには、F5 キーを押すだけです。一部のラップトップまたはデスクトップでは、更新操作を完了するために Fn+F5 キーの組み合わせを押す必要がある場合があります。 F5 キーを押して更新しても機能しないのはなぜですか? F5 キーを押してもコンピューターを更新できない場合、または Windows 11/10 で問題が発生している場合は、ファンクション キーがロックされていることが原因である可能性があります。その他の考えられる原因には、キーボードまたは F5 キーが含まれます

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Mar 24, 2024 am 11:27 AM

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか?ソーシャルメディアの台頭により、WeChatは人々の日常生活に欠かせないコミュニケーションツールの1つになりました。ただし、多くの人は、同じ携帯電話で同時に複数の WeChat アカウントにログインするという問題に遭遇する可能性があります。 Huawei 社の携帯電話ユーザーにとって、WeChat の二重ログインを実現することは難しくありませんが、この記事では Huawei 社の携帯電話で WeChat の二重ログインを実現する方法を紹介します。まず第一に、ファーウェイの携帯電話に付属するEMUIシステムは、デュアルアプリケーションを開くという非常に便利な機能を提供します。アプリケーションのデュアルオープン機能により、ユーザーは同時に

PHP プログラミング ガイド: フィボナッチ数列を実装する方法 PHP プログラミング ガイド: フィボナッチ数列を実装する方法 Mar 20, 2024 pm 04:54 PM

プログラミング言語 PHP は、さまざまなプログラミング ロジックやアルゴリズムをサポートできる、Web 開発用の強力なツールです。その中でも、フィボナッチ数列の実装は、一般的で古典的なプログラミングの問題です。この記事では、PHP プログラミング言語を使用してフィボナッチ数列を実装する方法を、具体的なコード例を添付して紹介します。フィボナッチ数列は、次のように定義される数学的数列です。数列の最初と 2 番目の要素は 1 で、3 番目の要素以降、各要素の値は前の 2 つの要素の合計に等しくなります。シーケンスの最初のいくつかの要素

Huawei携帯電話にWeChatクローン機能を実装する方法 Huawei携帯電話にWeChatクローン機能を実装する方法 Mar 24, 2024 pm 06:03 PM

Huawei 携帯電話に WeChat クローン機能を実装する方法 ソーシャル ソフトウェアの人気と人々のプライバシーとセキュリティの重視に伴い、WeChat クローン機能は徐々に人々の注目を集めるようになりました。 WeChat クローン機能を使用すると、ユーザーは同じ携帯電話で複数の WeChat アカウントに同時にログインできるため、管理と使用が容易になります。 Huawei携帯電話にWeChatクローン機能を実装するのは難しくなく、次の手順に従うだけです。ステップ 1: 携帯電話システムのバージョンと WeChat のバージョンが要件を満たしていることを確認する まず、Huawei 携帯電話システムのバージョンと WeChat アプリが最新バージョンに更新されていることを確認します。

Golang がゲーム開発の可能性を可能にする方法をマスターする Golang がゲーム開発の可能性を可能にする方法をマスターする Mar 16, 2024 pm 12:57 PM

今日のソフトウェア開発分野では、効率的で簡潔かつ同時実行性の高いプログラミング言語として、Golang (Go 言語) が開発者にますます好まれています。豊富な標準ライブラリと効率的な同時実行機能により、ゲーム開発の分野で注目を集めています。この記事では、ゲーム開発に Golang を使用する方法を検討し、具体的なコード例を通じてその強力な可能性を示します。 1. ゲーム開発における Golang の利点 Golang は静的型付け言語として、大規模なゲーム システムの構築に使用されます。

PHP ゲーム要件実装ガイド PHP ゲーム要件実装ガイド Mar 11, 2024 am 08:45 AM

PHP ゲーム要件実装ガイド インターネットの普及と発展に伴い、Web ゲーム市場の人気はますます高まっています。多くの開発者は、PHP 言語を使用して独自の Web ゲームを開発することを望んでおり、ゲーム要件の実装は重要なステップです。この記事では、PHP 言語を使用して一般的なゲーム要件を実装する方法を紹介し、具体的なコード例を示します。 1. ゲームキャラクターの作成 Web ゲームにおいて、ゲームキャラクターは非常に重要な要素です。ゲームキャラクターの名前、レベル、経験値などの属性を定義し、これらを操作するメソッドを提供する必要があります。

Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Mar 09, 2024 pm 05:36 PM

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

PHP と Ajax: オートコンプリート提案エンジンの構築 PHP と Ajax: オートコンプリート提案エンジンの構築 Jun 02, 2024 pm 08:39 PM

PHP と Ajax を使用してオートコンプリート候補エンジンを構築します。 サーバー側スクリプト: Ajax リクエストを処理し、候補を返します (autocomplete.php)。クライアント スクリプト: Ajax リクエストを送信し、提案を表示します (autocomplete.js)。実際のケース: HTML ページにスクリプトを組み込み、検索入力要素の識別子を指定します。

See all articles