2016-04-26 10 views
0

Hier meine PHP-Code:My Function Call funktioniert nicht innerhalb eines Echo ist

<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> 

Hier ist mein Javascript-Code:

<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> 

Ich denke, dass meine Fehler wirklich auf meine Funktionsaufruf in einem Echo. Gibt es eine Regel zur Ausführung eines Funktionsaufrufs innerhalb eines Echos, z. B. die ordnungsgemäße Verwendung von Einzel- und Doppelzitaten.

+0

Sie Ausgabe auf dieser Linie haben 'Echo "abc".$cnt."   "; " – Nehal

Antwort

-1

Sie rufen pa parametrisierte Funktion auf, aber ihre Definition hat keinen Parameter, suchen Sie nach diesem add_tagss ('param');

call add_tagss(".$idd."); instead onclick='add_tagss($idd)' und Definition sollte Parameter akzeptieren. Hoffe das könnte dir helfen.

+0

Tnx bro. aber es funktioniert immer noch nicht. Aber es gibt keinen Syntaxfehler im folgenden Code. –

2

Sie sind mit einfachen und doppelten Anführungszeichen beschäftigt.

Immer wenn Sie glauben, dass Sie mit Javascript und PHP herumhantieren, brechen Sie die Zeichenfolge.

Es ist nicht obligatorisch, eine Zeichenfolge in doppelten Anführungszeichen auf einmal zu wiederholen.

Sie können mehrere Verkettungen durchführen, um dasselbe zu erreichen.

Best Practice während Javascript-Code in PHP zu schreiben ist:

1) Code Quelltext anzeigen, ob JavaScript-Code zu finden ist richtig codiert. Natürlich zeigt die Ansichtsquelle keinen AJAX-generierten Code an. Verwenden Sie in diesem Fall Firefox's Inspect Element.

2) Überprüfen Sie, ob die Parameter von JavaScript-Funktionen in einfachen Anführungszeichen korrekt übergeben werden.

3) In Firefox, Check in console Registerkarte, wenn PHP geschrieben JavaScript-Code einige Fehler erzeugt.

4) Verwenden Sie in der JavaScript-Funktion console.log(), um zu überprüfen, ob die richtige Variable übergeben wurde.

Einige Änderungen:

ändern

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

An:

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

Und in Funktion erhalten Sie keine Parameter:

Ändern Sie es an:

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

    } 
+0

Bruder! Du bist ein Genie. Vielen Dank. Du rettest mich dort! –

+0

@OwsMGTan, Sie sind willkommen. – Pupil

+0

Es ist nichts falsch daran, alles in eine Zeichenkette zu schreiben, das eigentliche Problem ist, dass der Zeichenkettenwert nicht in Anführungszeichen gesetzt wird, so dass Javascript es als (undefinierte ...) Variable sieht. Der Rest ist nur persönliche Vorlieben und/oder bessere Lesbarkeit. – jeroen

-1

die Sie interessieren, in der zweiten für lop - wo Sie Funktionsaufruf in Anker-Tag hinzufügen - unter Skript versuchen - es wird erfolgreich Funktion aufrufen:

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> 
Verwandte Themen