アヤックス
原文:http://xajax.sourceforge.net/ 英語原文:Copyright © 2005 J. Max Wilson 中国語簡体訳:HonestQiao (Qiao Chu)/2005-12-7 17:23/(初版) ) xajax とは何ですか? xajax はどのように機能しますか? 他の PHP Ajax ライブラリの代わりに xajax を使用する必要があるのはなぜですか? コンテンツを非同期的に更新するにはどうすればよいですか? フォーム データを非同期的に処理する方法は? xajax にカスタム機能を追加する方法 プライベート製品または有料製品で xajax を使用できますか? xajax はどのように機能しますか? PHP の別の Ajax ライブラリの代わりに xajax を使用する必要があるのはなぜですか? PHP スクリプトで xajax を使用するにはどうすればよいですか? コンテンツを非同期的に更新するにはどうすればよいですか? 独自の製品で xajax を使用して料金を請求するにはどうすればよいですか? どうすればよいですか? xajax は xajax ですか? Xajax は、HTML、CSS、JavaScript、PHP を組み合わせて強力な WEB ベースの AJAX アプリケーション ソフトウェアを簡単に開発できるオープン ソースの PHP クラス ライブラリです。xajax を使用して開発されたアプリケーション ソフトウェアは、ページをリロードする必要がありません。サーバー側の PHP 関数を非同期に呼び出し、コンテンツを更新できます。 xajax とは? xajax は、HTML、CSS、JavaScript、および PHP を使用して強力な Web ベースの Ajax アプリケーションを簡単に作成できるオープン ソースの PHP クラス ライブラリです。 xajax で開発されたアプリケーションは、ページを再ロードせずにサーバー側の PHP 関数を非同期的に呼び出してコンテンツを更新できます xajax はどのように機能しますか? アプリケーション ソフトウェアは PHP 関数を非同期的に呼び出す必要があり、xajax の PHP オブジェクトは対応するパッケージを生成しています。 JavaScript 関数。呼び出されると、カプセル化された関数は JavaScript の XMLHttpRequest オブジェクトを使用してサーバーと非同期に通信し、呼び出しが完了すると、PHP 関数は xajax から xajax XML 応答を返し、それを に渡します。 xajax PHP オブジェクトは、アプリケーションから非同期に呼び出すことができるようにする PHP 関数の JavaScript ラッパー関数を生成します。呼び出されると、これらのラッパー関数は JavaScript の XMLHttpRequest オブジェクトを使用して、サーバー上の xajax オブジェクトと非同期に通信します。完了すると、xajax XML 応答が PHP 関数から返され、xajax はアプリケーションに返します。XML 応答には、xajax の JavaScript メッセージ ポンプによって解析され、アプリケーションのコンテンツを更新するために使用される命令とデータが含まれています。 他の PHP の ajax ライブラリの代わりに xajax を使用する必要があるのはなぜですか? プロジェクトのニーズに最も適したライブラリを選択する必要があります。 xajax には、ajax を特徴的かつ強力にする次の機能が用意されています。 PHP 用の Ajax ライブラリ? プロジェクトのニーズに最も適したライブラリを選択する必要があります。 xajax は、以下の機能を提供しており、これらを組み合わせることでユニークで強力なものになります: Xajax の特別な XML 応答/JavaScript メッセージ分析システムがそれを支援します。 , 自動処理関数 返されたデータは、PHP 関数によって返された命令に従って内容やステータスを更新します。xajax が処理するため、JavaScript コールバック処理関数 xajax 独自の XML レスポンス/JavaScript メッセージポンプを記述する必要はありません。システムは関数から返されたデータを自動的に処理し、PHP 関数から返された命令に従ってコンテンツや状態を更新します。そのため、JavaScript コールバック ハンドラー関数を作成する必要はありません。 Xajax オブジェクト コードとデータを厳密に混合し、xajax コードを他のコードから分離するためのアイデア。xajax はオブジェクトで構築されているため、xajaxResponse クラスを拡張し、addScript メソッドを使用して独自のカスタム機能を xajax に追加できます。コードとデータの間の緊密な関係を維持し、xajax コードを他のコードから分離するためのオブジェクト指向。xajax はオブジェクト指向であるため、xajaxResponse クラスを拡張し、addScript() メソッドを使用することで、独自のカスタム機能を xajax に追加できます。 xajax は Firefox、Mozilla、おそらく他の Mozilla ベースのブラウザ、Internet Explorer、Safari で動作します 更新要素を除きます。要素の値と innerHTML、xajax を使用して、スタイル、CSS クラス、チェックボックスとラジオ ボタンの選択、またはその他のほぼすべての要素属性を更新できます。xajax は、JavaScript から PHP に渡される xajax 関数のパラメーターとして、1 次元または多次元の配列、連想配列 (ハッシュ配列) の使用をサポートします。逆に、JavaScript オブジェクトを xajax 関数に渡すと、PHP 関数もサポートされます。記述的なオブジェクト属性を受け入れます 連想配列 (ハッシュ配列) xajax は、JavaScript から xajax 関数へのパラメーターとして単次元および多次元の配列と連想配列を渡すことをサポートします。関数はオブジェクトのプロパティを表す連想配列を受け取ります。 xajax は、xajax.getFormValues() JavaScript メソッドを使用して、フォーム内の値を表す配列を簡単に送信して渡すことができます。パラメータとして xajax に非同期処理関数: xajax_processForm(xajax.getFormValues('formId'); 。「checkbox[][]」または「によって生成された多次元配列または連想配列などの複雑な入力要素名を処理できます。」 name[first]" (ha 配列) は、PHP の $_GET 配列を使用してフォームを送信するのと同じように、簡単な非同期フォーム処理を提供します。xajax.getFormValues() JavaScript メソッドを使用することで、値を表す配列を簡単に送信できます。フォーム内で xajax 非同期関数へのパラメーターとして使用します: xajax_processForm(xajax.getFormValues('formId'); 。「checkbox[][]」や「name[first]」のような複雑な入力名でも動作します。フォームを送信して PHP $_GET 配列を使用したかのように、多次元の連想配列を生成します xajax を使用すると、アプリケーションで実行するリクエストへの応答として追加の JavaScript を動的に送信でき、これは動的に更新するのと同じくらい便利です要素の属性 xajax を使用すると、リクエストに応じて実行される追加の JavaScript をアプリケーションに動的に送信したり、要素の属性を動的に更新したりできます Xajax は、PHP 関数によって返されたデータを要素の属性と自動的に比較します。新しい場合のみ、データは既存のプロパティを変更することができ、これにより、プログラムがコンテンツ内の現在のコンテンツと同じまたは異なるコンテンツを更新するときに発生する明白なちらつきがなくなります。 xajax は、PHP 関数から返されたデータと、変更対象としてマークした要素の属性に既に存在するデータを自動的に比較します。属性は、実際に既存のデータを変更する場合にのみ、新しいデータで更新されます。これにより、既存のコンテンツと異なる場合もあれば異なる場合もあるデータを使用してコンテンツを定期的に更新するアプリケーションでよく見られるちらつきが解消されます。 xajax を通じて単に登録された各関数は、異なるリクエスト メソッドを使用できます。明示的に設定しない限り、デフォルトで POST メソッドを使用する xajax を通じてアクセスできるように登録された各関数は、異なるリクエスト タイプを持つことができます。GET が明示的に設定されていない限り、すべての関数はデフォルトで POST を使用します。これは、GET リクエストをいつ使用するかを慎重に検討するためです。が指定されている場合、xajax はスクリプトの URI を自動的に決定しようとします。Xajax の自動決定アルゴリズムは、ほとんどの HTTPS または HTTP の不明なポートがサーバー上で正常に動作することを確認します。 xajax 自動検出アルゴリズムは、ほとんどのサーバーで http:// だけでなく安全な https:// プロトコルでも動作し、 Xajax は UTF8 を使用して、スクリプトの URL を自動検出しようとします。すべてのリクエストとレスポンスをエンコードして、ほとんどの文字と言語をサポートするようにします。Xajax は、スペイン語、ロシア語、アラビア語、ヘブライ語を含むさまざまな UNICODE 文字のテストに成功しました。 xajax は、より広範囲の文字と言語をサポートできます。スペイン語、ロシア語、アラビア語、ヘブライ語を含むさまざまな Unicode 文字で正常にテストされています。Xajax で生成されたほとんどすべての JavaScript は、表示時に動的外部 JavaScript を介して Web アプリケーションに組み込むことができます。ブラウザーでアプリケーションのソース コードを表示すると、HTML マークアップに JavaScript 関数の定義は含まれません。 xajax によって生成された JavaScript のほぼすべてが、動的外部 JavaScript を通じて Web アプリケーションに組み込まれます。ブラウザ内のアプリケーションでは、マークアップは JavaScript 関数定義によって乱雑にされません。 Xajax は Smarty テンプレートで使用できます。 システムでは、xajax の JavaScript を含む Smarty 変数を作成するだけです: $smarty->assign(' xajax_javascript', $xajax->getJavascript()); その後、ヘッダー テンプレートで使用できます {$xajax_javascript} これにより、xajax がサイトに適用されます。 xajax は、変数を作成することで Smarty テンプレート システムで使用できますxajax JavaScript を含む Smarty 内: $smarty->assign('xajax_javascript', $xajax->getJavascript()); Then you can use {$xajax_javascript} in your header template to use xajax on your site. 如何在我的PHP脚本之中使用xajax? Xajax的设计是如此的富有特色,以至于不管是已有的web程序还是新的项目,它都能够被极其简单的部署和应用. 仅仅需要七步,你就可以在几乎任何PHP脚本之中加入xajax的强大功能: How do I use xajax in my PHP script? xajax is designed to be extremely easy to implement in both existing web applications as well as new projects. You can add the power of xajax to nearly any PHP script in seven easy steps: 包含xajax类库: require_once("xajax.inc.php"); 实例化xajax 对象: $xajax = new xajax(); 注册你需要通过xajax调用的PHP函数的名称: $xajax->registerFunction("myFunction"); 编写注册的PHP函数,并且在函数之中使用xajaxResponse 对象返回XML指令: function myFunction($arg) { // 对$arg做一些基本处理例如从数据库检索数据 // 然后把结果赋值给变量,例如$newContent // 实例化xajaxResponse 对象 $objResponse = new xajaxResponse(); // 添加指令到响应之中,用于指派 //指定元素(例如id="SomeElementId")的innerHTML属性的新的内容 $objResponse->addAssign("SomeElementId","innerHTML", $newContent); //返回xajaxResponse 对象生成的XML响应 return $objResponse->getXML(); } 在你的脚本输出任何信息之前,调用xajax用于接管请求: $xajax->processRequests(); 在页面的 标签之间, 告诉xajax生成所必需的JavaScript: printJavascript(); ?> 在程序中,从JavaScript事件或者函数调用前面注册的函数:
Include the xajax class library: require_once("xajax.inc.php"); Instantiate the xajax object: $xajax = new xajax(); Register the names of the PHP functions you want to be able to call through xajax: $xajax->registerFunction("myFunction"); Write the PHP functions you have registered and use the xajaxResponse object to return XML commands from them: function myFunction($arg) { // do some stuff based on $arg like query data from a database and // put it into a variable like $newContent
// Instantiate the xajaxResponse object $objResponse = new xajaxResponse();
// add a command to the response to assign the innerHTML attribute of // the element with id="SomeElementId" to whatever the new content is $objResponse->addAssign("SomeElementId","innerHTML", $newContent);
//return the XML response generated by the xajaxResponse object return $objResponse->getXML(); } Before your script sends any output, have xajax handle any requests: $xajax->processRequests(); Between your tags, tell xajax to generate the necessary JavaScript: printJavascript(); ?> Call the function from a JavaScript event or function in your application:
他のことはすべて xajax が処理します。主に行うべきことは、PHP 関数を作成し、その関数から xajax XML 応答を返すことです。後者は、xajaxResponse クラスを使用して非常に簡単に生成できます。これだけです。最大のタスクは、PHP 関数を作成し、そこから xajax XML 応答を返すことです。これは、xajaxResponse クラスによって非常に簡単になります。 コンテンツを非同期的に更新する方法 おそらく、Xajax の最も特徴的な機能は、非同期リクエストによって返されたデータを処理してコンテンツを更新するために独自の JavaScript コールバック ハンドルを作成する必要があることです。別の観点から見ると、PHP を使用してコンテンツを簡単に制御できます。xajaxResponse を使用すると、プログラムに返すための XML 命令を PHP 関数内に作成でき、その XML が xajax のメッセージ パーサーによって解析され、その命令によって xajax にコンテンツの更新方法が指示されます。 xajaxResponse クラスは現在、次の指示を提供します: コンテンツを非同期に更新するにはどうすればよいですか? おそらく、xajax の最もユニークな機能は、JavaScript で独自のコールバック ハンドラーを作成する必要があることです。一方、xajax を使用すると、PHP からコンテンツを簡単に制御でき、PHP 関数からアプリケーションに返す XML 命令を作成できます。 XML は xajax メッセージ ポンプによって解析され、xajaxResponse クラスは現在次のコマンドを提供しています: Assign $sAttribute $sTargetId という名前の要素への属性の割り当て $sData $objResponse->addAssign("contentDiv","innerHTML","Some Text"); $objResponse->addAssign("checkBox1","checked","true) "); addAssign( $sTargetId,$sAttribute,$sData) $sTargetId で識別される要素の $sAttribute を $sData に割り当てます $objResponse->addAssign("contentDiv","innerHTML","Some Text") ); $objResponse- >addAssign("checkBox1","checked","true"); addAppend($sTargetId,$sAttribute,$sData) 値 $sData を、という名前の要素の $sAttribute 属性に追加します$sTargetId $objResponse-> ;addAppend("contentDiv","innerHTML","Some Text"); addAppend($sTargetId,$sAttribute,$sData) $sData を $ で識別される要素の $sAttribute に追加しますsTargetId $objResponse-> addAppend("contentDiv","innerHTML","Some Text"); addPrepend($sTargetId,$sAttribute,$sData) $sData を次の名前の要素の $sAttribute 属性に割り当てる準備をします$sTargetId $objResponse-> addPrepend("contentDiv","innerHTML","Some Text"); addPrepend($sTargetId,$sAttribute,$sData) $sData を $ で識別される要素の $sAttribute に追加しますsTargetId $objResponse->addPrepend ("contentDiv","innerHTML","Some Text"); addReplace($sTargetId,$sAttribute,$sSearch,$sData) $sAttribute 属性の値の $sSearch を置き換えます$sTargetId という名前の要素の $sData $objResponse->addReplace("contentDiv","innerHTML","text","text "); addReplace($sTargetId,$sAttribute ,$sSearch,$sData) $sTargetId で識別される要素の $sAttribute 内の $sSearch のすべてのインスタンスを $sData に置き換えます $objResponse->addReplace("contentDiv","innerHTML","text","< ;strong>textaddClear($sTargetId,$sAttribute) $sTargetId という名前の要素の $sAttribute 属性の値をクリアします $objResponse->addClear("Input1","value" ); addClear($sTargetId, $sAttribute) $sTargetId で識別される要素の $sAttribute をクリアします $objResponse->addClear("Input1","value"); addCreate($sParentId, $sTagname, $ sId, $sType) すでに $sParentId という名前の既存の要素の下に $sTagName という名前の子要素を追加し、その ID を $sId に割り当て、オプションのタイプを $sType に割り当てます。 $objResponse->addCreate("form1", "input", "pass", "password"); addCreate($sParentId, $sTagname, $sId, $sType) $sParentId で識別される既存の要素に新しい $sTagName 子要素を追加し、それに ID を割り当てます$sId とオプションのタイプ $sType $objResponse->addCreate("form1","input", "pass", "password"); addRemove($sElementId) アプリケーションから名前を削除します $objResponse- >addRemove("div1"); addRemove($sElementId) $sElementId で識別される要素をアプリケーションから削除します $objResponse->addRemove("div1"); addAlert ($sMsg) アラート ボックスを表示します$sMsg 付き (JavaScript アラート) $objResponse->addAlert("これはテキストです"); addAlert($sMsg) $sMsg でアラート ボックスを表示します $objResponse->addAlert("これはテキストです") "); addScript($sJS) JavaScript コード $sJS を実行します (デモ コードの元のテキストは間違っています) $objResponse->addScript("var txt = Prompt('get some text');"); addScript($sJS) JavaScript コード $sJS $objResponse->addAlert("var txt = prompt('get some text');"); 独立した XML 応答には複数の命令が含まれる場合があり、これらの命令は、例として、ユーザーがプログラム内のボタンをクリックすると、Onclick イベントが PHP 関数に対応する JavaScript パッケージを呼び出し、XMLHttpRequest を通じてサーバーに非同期リクエストを送信して、xajax の PHP 関数を呼び出します。 PHP 関数はデータベース クエリを実行し、データまたはシリアル化を処理します。次に、xajaxResponse クラスを使用して、複数のコマンドを含む xajax XML 応答を生成し、実行のために xajax のメッセージ アナライザーに送り返します。 1 つの XML 応答に複数のコマンドが含まれる場合があります。たとえば、ユーザーがアプリケーションのボタンをクリックすると、そのラッパーは PHP 関数の JavaScript ラッパーを呼び出します。 xajax が PHP 関数を呼び出す XMLHttpRequest を通じてサーバーに送信します。PHP 関数はデータベース検索、データ操作、またはシリアル化を実行し、xajax メッセージ ポンプに送り返す複数のコマンドを含む xajax XML 応答を生成します。実行されました: $objResponse = new xajaxResponse() ; $objResponse.addAssign("myInput1","value",$DataFromDatabase); $objResponse.addAssign("myInput1","style.color","red"); $objResponse.addAppend("myDiv1", "innerHTML",$DataFromDatabase2); $objResponse.addPrepend("myDiv2","innerHTML",$DataFromDatabase3); $objResponse.addReplace("myDiv3","innerHTML", "xajax","xajax $ objresponse.addscript (" var x = プロンプト ("名前を入力してください");); 応答 = new xajaxResponse () ; $objResponse .addAssign("myInput1","value",$DataFromDatabase); $objResponse.addAssign("myInput1","style.color","red"); $objResponse.addAppend("myDiv1", "innerHTML", $DataFromDatabase2); $objResponse.addPrepend("myDiv2","innerHTML",$DataFromDatabase3); $objResponse.addReplace("myDiv3","innerHTML","xajax","xajax< ;/strong> "); $objResponse.addScript("var x = prompt("Enter Your Name");"); return $objResponse->getXML(); xajax メッセージ アナライザーは XML メッセージを解析し、次の処理を実行します。作業: ID myInput1 の要素の値が $DataFromDatabase のデータに割り当てられます。 ID myInput1 の要素の色が赤に変わります。 $DataFromDatabase2 のデータが ID myDiv1 のデータに追加されます。 innerHTML 要素では、$DataFromDatabase3 のデータが、myDiv2 の ID を持つ innerHTML 要素に事前に割り当てられます。 myDiv3 の ID を持つ要素の innerHTML 内のすべての「xajax」は、「"; xajax のすべての単語を太字で表示します。 ユーザー名の入力を求めるプロンプト ボックスが表示されます。 プロンプト ボックスから返された値は、x という名前の JavaScript 変数によって受け取られます。 xajax メッセージポンプは XML メッセージを解析し、次の処理を実行します。 ID myInput1 の要素の値が $DataFromDatabase のデータに割り当てられます ID myInput1 の要素内のテキストの色が赤に変更されます。 $DataFromDatabase2 のデータは、ID myDiv1 の要素の innerHTML に追加されます。 $DataFromDatabase3 のデータは、ID myDiv2 の要素の innerHTML に追加されます。 要素の innerHTML 内のすべての「xajax」の出現。 id myDiv3 は「xajax 」に置き換えられ、xajax という単語のすべてのインスタンスが太字で表示されます。ユーザー名を尋ねるプロンプトが表示され、プロンプトから返される値は次のようになります。 x という名前の JavaScript 変数に配置されます。 これらはすべて、xajax XML 応答を作成して返すことによって、サーバー側で実装されます。 フォーム データを非同期的に処理するにはどうすればよいですか。 Xajax はフォーム データを非常に非同期に処理します。 xajax.getFormValues() メソッドは、フォームからデータを自動的に抽出し、xajax に登録された PHP 関数にパラメーターとして送信します。 xajax.getFormValues() には、必要なフォームの ID を指定するパラメーターが 1 つだけ必要です。処理するオブジェクト、または実際のフォーム オブジェクトを xajax 関数のパラメーターとして使用することもできます。例: xajax_processFormData(xajax.getFormValues('formId' )); xajax は、xajax サーバーが解析するフォーム データに対応するリクエスト文字列を生成し、それをフォーム データに対応する配列として PHP 関数に渡します。これは、PHP の $_GET 配列を使用してフォームを送信するのと同じくらい簡単です。 Xajax は、通常の多次元配列または連想配列 (ハッシュ配列) の形式で同様の複雑な入力名を処理できます。たとえば、フォームに 3 つのチェックボックスがあり、それらはすべて「checkbox[]」という名前ですが、値は次のようになります。 "check1"、" check2"、および "check3" を指定し、xajax 関数に渡すパラメーターとして xajax.getFormValues 関数を使用すると、PHP 関数は次のような配列を受け取ります: array ( 'checkbox ' => array ( 0 => 'check1', 1 => 'check2', 2 => 'check3', ), ) 関数のパラメータとしての配列の構造は従来の意味でフォームを送信した後の $_GET 配列の構造と同じです: $aFormData['checkbox'][0] 配列内のチェックボックス データにアクセスできます。 フォーム データを非同期的に処理するにはどうすればよいですか? xajax は次のようにします。 xajax.getFormValues() メソッドを使用すると、フォームからデータを自動的に抽出し、それをパラメータとして xajax に登録した PHP 関数に渡すことができます。xajax.getFormValues() は 1 つの引数を受け取ります。これは、処理するフォームの ID または実際のフォーム オブジェクトのいずれかになります。次のように、xajax.getFormValues を xajax 関数のパラメーターとして使用します。 ); xajax は、フォーム データを表すクエリ文字列を生成します。このクエリ文字列は xajax サーバーによって解析され、フォームを送信して PHP $_GET 配列を使用したかのように、フォーム データを表す配列として PHP 関数に渡されます。 xajax は複雑な入力名も処理して、多次元の連想配列を生成します。たとえば、3 つのチェックボックスを持つフォームがあり、それらすべてに「checkbox[]」という名前を付けますが、「check1」、「check2」などの異なる値を指定するとします。 "、および "check3" を使用し、xajax 関数のパラメーターとして xajax.getFormValues 関数を使用すると、PHP 関数は次のような配列を受け取ります: array ( 'checkbox' => array ( 0 => 'check1', 1 => 'check2', 2 => 'check3', ), ) 関数の配列引数は、次の場合に $_GET 配列の構造を反映します。従来はフォームを送信していましたが、次のように配列内のチェックボックス データにアクセスできます: $ aFormData['checkbox'][0] xajax にカスタマイズ関数を追加する方法? Xajax はユーザー カスタマイズ関数で拡張できます。 xajax は完全にオブジェクト指向であり、 xajaxResponse の addScript() メソッドを使用できるため、無限の拡張可能性があります。独自の xajax 応答クラスを作成したり、xajaxResponse クラスとそのメソッドを継承したりできます。独自のカスタマイズされた応答を追加します。カスタマイズされた選択コンボ ボックス (コンボ ボックスの選択) オプションを使用します。次のように xajaxResponse クラスを拡張できます。 { $sScript = "var objOption = new Option('".$sOptionText."','".$sOptionValue."');"; $sScript .= "document.getElementById('".$sSelectId. "').options.add(objOption) ;"; $this->addScript($sScript); } } 次に、xajaxResponse オブジェクトを初期化する代わりに、独自の myXajaxResponse オブジェクトの初期化を xajax PHP 関数に定義します。 : $objResponse = new myXajaxResponse(); $objResponse->addAssign("div1", "innerHTML", "Some Text"); $objResponse->addAddOption("select1","新しいオプション"," 13"); return $objResponse->getXML(); 呼び出されると、このメソッドは必要な JavaScript をページに送信して実行します。 もちろん、別のアプローチもあります。あるいは、次のコードを作成することもできますプログラム内の JavaScript 関数: そして、addScript() を使用してこのメソッドを呼び出します: $objResponse->addScript("addOption('select1','New Option','13' );") ; xajax にカスタム機能を追加するにはどうすればよいですか? xajax は、あらゆる種類の追加のカスタム機能で拡張できます。 xajax の拡張性は、xajax がオブジェクト指向であるため、また xajaxResponse クラスの addScript() メソッドによって可能になります。 xajaxResponse クラスを拡張し、通常のすべての xajaxResponse メソッドに加えて独自のカスタム応答を備えた独自の xajax 応答クラスを作成できます。たとえば、コンボ ボックスを選択するためのオプションを追加するカスタム応答コマンドを追加するとします。次のように xajaxResponse クラスを拡張できます: class myXajaxResponse extends xajaxResponse { function addAddOption($sSelectId, $sOptionText, $sOptionValue) { $sScript = "var objOption = new Option('".$sOptionText."') ,'".$sOptionValue."');"; $sScript .= "document.getElementById('".$sSelectId."').options.add(objOption);"; $this->addScript( $sScript); } } ここで、xajaxResponse オブジェクトをインスタンス化する代わりに、xajax PHP 関数で myXajaxResponse オブジェクトをインスタンス化して使用します。 $objResponse = new myXajaxResponse(); $objResponse->addAssign("div1 "、"innerHTML"、"テキスト"); $objResponse->addAddOption("select1","新しいオプション","13"); return $objResponse->getXML(); このメソッドは、呼び出されたときに必要な JavaScript をページに送信して実行します。あるいは、アプリケーションで JavaScript 関数を作成することもできます: そして、addScript() メソッドで呼び出します: $objResponse->addScript("addOption('select1','New Option','13');"); 我能在私有或者收费产品之中で使用xajax吗? 简言之: 能,只要你愿意. xajax PHP 类库の発行準拠 GNU Lesser General Public License (LGPL)。 プロプライエタリな製品で xajax を使用して、料金を請求してもいいですか? 要するに: はい、使用できます。 xajax PHP クラス ライブラリは、GNU Lesser General Public License (LGPL) に基づいてリリースされています。 简体中文手册版权所有 © 2005 HonestQiao(乔楚) 著作権 © 2005 J. Max Wilson