2017-07-08 4 views
0

Ich würde gerne vier Argumente übergeben, $ row ['title'], $ row ['username'] und $ row ['date'].Warum wird die folgende onclick-Funktion nicht ausgeführt?

<?php 
echo "<script> 
    function increasevotes(e,location,user,date) 
    { 
    e.preventDefault(); 
    console.log(\"Hi!\"); 
    } 
    </script>"; 

//I've proper code here for fetching the mySQL query results into $rows and that part is working perfectly. 

while($rows=mysqli_fetch_array($result)) 
{ 
if($rows['public']=="yes") 
{echo "<span class=\"right\" id=\"nolikes\">{$rows['vote']}</span><a href=\"\" onclick=\"increasevotes(event,\"{$rows['title']}\",\"{$rows['username']}\",\"{$rows['date']}\")\"><img src=\"img/like.png\" class=\"right\" width=\"30\" height=\"30\"/></a>"; 
} 
?> 

Was eigentlich gemacht wird, wird stattdessen die Seite aktualisiert.

<span class="right" id="nolikes">0</span> 
<a href="" onclick="increasevotes(event,"chennai","venkat","01/07/2017")"><img src="img/like.png" class="right" width="30" height="30"/> 
</a> 
+0

wenn Sie eine console.log ('Skript läuft'); vor deiner Funktion wird es also laufen wenn die Seite geladen wird ... Siehst du die Nachricht? – TimBrownlaw

+0

inspect Element, das Anker-Tag und Sie werden feststellen, warum es nicht funktioniert – Nagaraju

+2

Ids müssen einzigartig – Andreas

Antwort

1

ändern doppelte Anführungszeichen zu Apostrophe der Funktionsparameter

onclick="increasevotes(event,'chennai','venkat','01/07/2017')" 

oder verwenden \, um die Anführungszeichen zu entkommen: Wenn ich Quelltext anzeigen Seite klicken, wird dies angezeigt.

+0

Es funktioniert jetzt, danke. Warum ist es nicht früher? – cyberdon

Verwandte Themen