2011-07-31 13 views
2

私はこれを行うことができますが、私は最後の2日間は成功していないので、これを試しています。phpループからJavaスクリプト関数を呼び出す

私はループを印刷するページを生成しようとしているJavaスクリプト

<script type="text/javascript"> 

function jfun(n) 
{ 
html="Loop is on" + n; 
$("<div>"+ html +"</div>").appendTo("div#meprocess"); 
} 
</script> 

<div id="meprocess"></div> 
<?php 
for($i=1;$i<=10;$i++) 
{ 
?> 
<script> 
jfun(<?php echo $i;?>); 
</script> 
<?php 
} 
?> 

PHPの例

ようなPHP

からJavaスクリプト機能を実行したいです番号順に...

しかし、私はエラーがjfunが定義されていません。

私は私のJavaスクリプト機能がPHPの実行時に準備ができていないことを理解することができます。 は丸いどのような方法は、あなたが持っている.... Javaスクリプト機能はその時、またはラウンド、他の方法できるようになりますように、DOM /ページの準備ができているとき、PHPのループを実行するのと同じように、

おかげ

答えて

4

ありJavaScriptの関数が使用する関数を上回っていることを確認してください、まず

http://sandbox.phpcode.eu/g/15b02.php

<div id="meprocess"></div> 
<script type="text/javascript"> 

function jfun(n) 
{ 
html="Loop is on" + n; 
$("<div>"+ html +"</div>").appendTo("div#meprocess"); 
} 
<?php 
for($i=1;$i<=10;$i++) 
{ 
?> 
jfun(<?php echo $i;?>); 
<?php 
} 
?> 
</script> 
0

それを呼び出す前に、その関数を定義します。

それとも<script>jfun("<?php echo $i;?>");</script>

0

は、PHPコードの前にコードを記述してみてください。その場合、関数jfunは既知である。

2

あなたのPHPコードは、スクリプトによって実行されるいくつかのJavaScriptコードを(非常に悪い方法で)生成しています。それが動作するはずですが、これは間違いなくそれを行うための最善の方法ではありません - あなたは、PHPスクリプトから値を渡し、結局、JS側でループを実行する必要があります。..しかし

「未定義の機能"関数が作成される前にコードを実行しようとすると問題が発生します。ここで説明したように

$(document).ready(function(){ 
// Your code here.. 
}) 

か、単に

$(function(){ 
// Your code here.. 
}) 

:すべてがロードされた後にのみ、いくつかのコード実行をするために、jQueryのを使用して、使用http://api.jquery.com/ready/ループのために、あなたには、いくつかを生成する必要がありますについては

このようなjs:

<div id="meprocess"></div> 
<script type="text/javascript"> 
for (i=1; i<=10; i++) { 
jfun(i); 
} 
</script> 

..最小/最大値PHPスクリプトから:

<?php 
    $min = 1; 
    $max = 10; 
?> 
<div id="meprocess"></div> 
<script type="text/javascript"> 
for (i=<?php print $min; ?>; i<=<?php print $max; ?>; i++) { 
jfun(i); 
} 
</script> 

..これはループするためにN個の関数呼び出しを書くよりも良い方法です。

+0

また、そのコードを実行する前にjQueryをロードしておくことを忘れないでください。そうしないと、 '$'(別名 'jQuery')がまだ定義されていないので同じ問題が発生します。 – redShadow

関連する問題