2011-07-13 8 views
0

例:{if $results != 0} 私はそれをどのように行うことができます。Javascriptの変数 - > Php - > Smarty ...可能ですか?

<script type="text/javascript"> 
    insertVideos({ 
     'block':'youtubeDiv', 
     'q':'keyword', 
     'type':'search', 
     'results':8, 
     'order':'most_relevance', 
     'player':'embed', 
     'layout':'thumbnails' 
    }); 
</script> 

私はのようなものを必要とするプロセスの最後に 、変数として「結果」は合格することが必要ですか?

+0

PHPの情報をjsに渡します。 hornetbzz

+3

JavaScriptはクライアント側で実行されます。したがって、実行順序はPHP - > Smarty - > JavaScriptです。 Ajaxで新しいコンテンツを読み込んでページに挿入したいのでない限り、それは不可能です。 –

+0

正確には、その関数が検索後に少なくとも1つの結果を取得するかどうかを知る必要があります。実際の結果はmax_resultsを意味します。その機能を確認するには? isset ...空...これのようなもの?助けてください – smepie

答えて

1

javascriptでPHP/Smartyにアクセスする方法は2つの異なる世界で実行されるため、アクセスする方法はありません。

ページはサーバーから要求されます。サーバーはPHPを実行し、Smartyでコンテンツを生成します。サーバーは、生成されたHTMLおよびjavascriptソースコードをクライアントに送信します。サーバーが完成しました。別の要求が受信された場合、前の要求を知らずに新たに要求が開始されます。

クライアントはHTMLとjavascriptソースを受け取り、表示します。 insertVideosメソッドは最終的に呼び出しを取得します。この時点では、サーバとPHP/Smartyの機能との相互作用はありません。

そこから、JavaScriptがAjaxリクエストをサーバーに戻す可能性があります。または、検索で一部(results > 0)が見つかった場合にのみ動画を表示したいと仮定した場合は、javascriptでその確認を行い、 /必要に応じてDOM要素を変更します。

+0

おかげで、それはそれが見つからない場合、結果を表示していません...問題は、この動作に関するリンクを表示するかどうかを示すことでした。今のところ私はスクリプトを割り当てられたタブの代わりに別のタブに含めて解決します。 – smepie

関連する問題