2011-08-02 32 views
2

私はMagentoを使用して小さなサイトを開発しようとしています。このサイトでは、ドロップダウンボックスからのユーザーの選択に基づいて動的コンテンツを表示しようとしています。AJAXからPHPファイルを呼び出す

これまでのところ私はJavaScriptを行い、PHPファイルのXMLHTTPリクエストのためにAJAXを使用し、その

function loadLocations(value){ 
var xmlhttp; 
if (value==0) 
{ 
    document.getElementById("locationList").innerHTML=""; 
    return; 
} 
if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange=function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("locationList").innerHTML=xmlhttp.responseText; 

    } 
} 
xmlhttp.open("GET","getLocations.php?countryID="+value,true); 
xmlhttp.send(); 

}

とgetLocationsを次のようにW3Schoolsの例により提供されたコードに基づいてきました。 PHPは、パス

アプリケーション/コード/ローカル/会社/モジュール/ブロック/

0123に配置されています

と私の疑いはどのように特定の場所にgetLocations.phpファイルを指すかです。

ヘルプ、ありがとうございます。

+0

良い努力にこのコード​​を変更する必要があります。しかし、自分で問題を解決し、ちょうど[Ajax.Updater](http://api.prototypejs.org/ajax/Ajax/Updater/)を使用してください。 – clockworkgeek

+0

あなたの貴重な感謝のおかげで、ありがとう。 – Vignesh

答えて

4

1)コントローラを作成する必要があります。 companyName/yuormodule/controllers/AjaxController.php 2)AjaxController.phpで、アクションを作成します(例:indexAction())。コードセクションを参照してください

public function indexAction() 
{ 
    $this->loadLayout(); 
    $this->renderLayout();  
} 

3)次にyourlayout.xml(例に追加します。そして、アプリ/設計/フロントエンド/ベース/デフォルト/レイアウト/ yourlayout.xml)次のコード

<yourmodule_ajax_index> 
     <block type="yourmodule/getlocations" name="root" template="path/file.phtml"> 
     </block> 
    </yourmodule_ajax_index> 

4)あなたconfix.xmlのレイアウトを更新する必要があります。あなたのgetLocationクラスのこのインスタンスの後

<layout> 
    <updates> 
     <yourmodule> 
      <file>yourlayout.xml</file> 
     </yourmodule> 
    </updates> 
</layout> 

5)file.phtmlで利用できるようになります。

6)そして最後は、ちょうどAJAX自分を教えるxmlhttp.open("GET","yourmodule/ajax/index/countryID/"+value,true);

1

あなたの機能を処理するコントローラクラスを作成する必要があります。例えば、app/code/local/company/module/controllers/AjaxController.phpです。コントローラについては、オンラインで読むことができます(これらは、マゼンタの中核を成しています)。次に、あなたはおそらくhttp://mywebsite.dom/module/ajax/getlocations/countryID/34/のようなものを呼び出すでしょう。

私が知る限り、これが最良の方法でしょう。

P.S. Magentoを初めてお使いの方には、このシリーズを少し覚えておいてください:http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-1-introduction-to-magento

関連する問題