2016-04-26 23 views
0

をエコー動作しない私のPHPコードは次のとおりです。ここで私の関数呼び出しはインサイドAはここで

<div class="box-body" id="chosen-tags"> 
<?php 
$cnt = 1; 
for($cnt=1;$cnt<=20;$cnt++){ 
    echo "<a id='abcd$cnt' style='float:left;'>abcd".$cnt."&nbsp;&nbsp;</a>"; 
} 
?> 
</div> 


<div class="box-body" id="tags-toggle-content" style="display: none"> 
<?php 
$cnt = 1; 
for($cnt=1;$cnt<=20;$cnt++){ 
    $idd = "abcd".$cnt; 
    echo "<a id='abc$cnt' style='float:left' onclick='add_tagss($idd)'>abc".$cnt."&nbsp;&nbsp;&nbsp; </a>"; 
} 
?> 
</div> 

は私のJavascriptのコードです:

<script type="text/javascript"> 

    function toggle_visibility(id) 
    { 
     var f = document.getElementById(id) 
     if(f.style.display == 'block') 
      f.style.display = 'none'; 
     else 
      f.style.display = 'block'; 
    } 

    function add_tagss() 
    { 
     var f = document.getElementById("id"); 
     f.style.display = 'none'; 

    } 

    </script> 

は、私は本当に私のエラーは私の関数呼び出しであることを考えますエコー内。単一引用符や二重引用符を適切に使用するなど、エコー内で関数呼び出しを実行する方法に関するルールはありますか?

+0

あなたは、この行 'エコー上の問題を持っています"abc".$cnt."   "; " – Nehal

答えて

-1

paパラメータ化された関数を呼び出していますが、そのdefinationにパラメータがない場合は、このadd_tagss( 'param')を探します。

call add_tagss(".$idd."); instead onclick='add_tagss($idd)'と定義する必要があります。これがあなたに役立つことを願っています。

+0

Tnx bro。それでも動作していません。しかし、次のコードには構文エラーはありません。 –

2

あなたは一重引用符と二重引用符を使いこなしています。

あなたがJavaScriptとPHPを使いこなしていると思うときはいつでも、文字列を壊してください。

文字列を二重引用符で囲む必要はありません。

同じように複数の連結を行うことができます。 PHPでjavascriptのコードを書きながら

ベストプラクティスは次のとおりです。

1)ビューのソースコード適切にコード化されたJavaScriptコードするかどうかを調べるには。もちろん、ビューソースはAJAX生成コードを表示しません。この場合はFirefox's Inspect Elementを使用してください。

2)javascript関数のパラメータが一重引用符で正しく渡されるかどうかを確認します。

3)PHPで書かれたjavascriptコードでエラーが発生している場合は、Firefoxでconsoleタブをチェックインしてください。

4)javascript関数では、console.log()を使用して、適切な変数が渡されているかどうかを確認します。

いくつかの変更:

変更

echo "<a id='abc$cnt' style='float:left' onclick='add_tagss($idd)'>abc".$cnt."&nbsp;&nbsp;&nbsp; </a>"; 

へ:

echo "<a id='".$idd."' style='float:left'" . "onclick=add_tagss('".$idd."')>abc".$cnt."&nbsp;&nbsp;&nbsp; </a>"; 

そして機能では、任意のパラメータを受信されていません。

変更をそれが:

function add_tagss(id) 
    { 
     var f = document.getElementById(id); 
     f.style.display = 'none'; 

    } 
+0

bro!あなたの天才。どうもありがとうございました。あなたは私をそこに救う! –

+0

@OwsMGTan、あなたは大歓迎です。 – Pupil

+0

それをすべて1つの文字列に入れることには何も問題はありませんが、実際の問題は文字列値が引用されていないため、javascriptはそれを(未定義の...)変数として見てしまうことです。残りは単に個人的な好みや読みやすさの向上です。 – jeroen

-1

LOPための第二に、これを試してみてください - あなたはアンカータグで関数呼び出しを追加する場所 - スクリプトの下にしてみてください - それが成功した関数を呼び出します:

for($cnt=1;$cnt<=20;$cnt++) 
{ 
    $idd = "abcd".$cnt; 
    echo "<a href='#' id='abc$cnt' style='float:left;' onclick='add_tagss(\"".$idd."\")'>abc".$cnt."&nbsp;&nbsp;&nbsp; </a>"; 

} 
-1
<div class="box-body" id="chosen-tags"> 
    <?php 
    $cnt = 1; 
    for($cnt=1;$cnt<=20;$cnt++) 
    { 
     echo "<a id='abcd$cnt' style='float:left;'>abcd".$cnt."&nbsp;&nbsp;</a>"; 
    } 
    ?> 
</div> 
<hr /> 

<div class="box-body" id="tags-toggle-content" style="display: block"> 
    <?php 
    $cnt = 1; 
    for($cnt=1;$cnt<=20;$cnt++) 
    { 
     $idd = "abcd".$cnt; 


     echo "<a id='abcd$cnt' style='float:left' onclick='add_tagss(\"$idd\")'>abc".$cnt."&nbsp;&nbsp;&nbsp; </a>"; 

    } 
    ?> 


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

    function toggle_visibility(id) 
    { 
     var f = document.getElementById(id) 
     if(f.style.display == 'block') 
      f.style.display = 'none'; 
     else 
      f.style.display = 'block'; 
    } 

    function add_tagss(idd) 
    { 

     var f = document.getElementById(idd); 
     f.style.display = 'none'; 

    } 

</script> 
関連する問題