2012-04-22 3 views
0

ビューからコンポーネントの関数を呼び出すにはどうすればよいですか?ここCakePHP - ビューからコンポーネントの関数を呼び出し、ボタン上でそれを実行する

...私は$theComponent->yourMethod();は、ボタンのクリックで実行されるが、代わりにそれは、ページのロード時に実行される行をしたい

App::import('Component', 'YourComponent'); 
$theComponent = new YourComponent(); 
$theComponent->yourMethod(); 

:(CTPファイル)

私はこのようなものを使用していますコードの一部です:

<script type="text/javascript"> 
function assign() 
{ 
    var links_list = []; 
       var links =document.getElementById('unassignedUsers').getElementsByTagName('a'); 
       for(var a in links) { 
        if(typeof links[a] == undefined) continue; 
        links_list.push(links[a].innerHTML);} var str =links_list.toString(); 
        var array = str.split(','); 
        alert(array); 
       } 
    <?php App::import('Model', 'Account'); 
    $account = new Account(); 
    $account->insertPos();?> 
} 

<button id="button" name="button" onClick="assign();"> Save Changes </button> 
//this is the button i need the function to be executed when i click.... 

ボタンがクリックされたときにのみ実行されるJavaScriptの内部でPHPコードを作るに何をすべきかを教えてください?

+1

JavascriptからPHPコードを実行することはできません。 PHPはサーバ上で動作し、ブラウザのJavascriptで動作します。あなたができることは、あなたが望むPHPコードを実行するURLにJavascriptを使ってサーバーにHTTPリクエストを送信することです。それについてはAjaxを参照してください。 – nIcO

答えて

0
echo $form->create('Account', array('action' => 'insertPos')); 
echo $form->button('Save Changes', array('type' => 'submit')); 
echo $form->end(); 
+0

私はこのすべての私のビューが消えて、私は白いページがある... –

+0

あなたの全体のctpファイルはどのように見えるのですか? – Jack

0

cakephpとインターネットは特定のアーキテクチャで動作します。 Cakephpには、アーキテクチャを "壊して"回避するのが簡単ですが、インターネット上では非常に困難です。インターネットはクライアント側でHTML、Javascript、およびCSSが動作するクライアント/サーバーアーキテクチャを使用します。ブラウザとPHP(他の言語と同様に)はサーバー側で動作します。サーバーは、HTTPRequests(最も簡単なのはAJAX)をロードした後でのみ、クライアント側と対話します。 HTTPRequestのみがサーバー側の実行をトリガーし、常にURL経由で実行されます。したがって、以下はあなたが従うべきである大まかなモデルです。

クライアント側< ---- HTTPRequestの---->サーバー側

がこれを考えるとCakePHPによる作業、ベストプラクティスに従うと、CakePHPのからほとんどを得るために、保存するためにあなたの要求すべきです
www.yoursite.com/controller-name/save

ここから、すべての値がフォーム要素にあると仮定すると、コントローラにはフォーム要素の値のみが送信されます。コントローラー内で次のようになります。
$this->Account->insertPos();

あなたのウェブサイトをダイナミックにしたい場合は、最高のアドバイス。 AJAXに慣れてください。

関連する問題