2017-07-06 2 views
0

Je tente de faire écho à la ligne suivante de HTML PHP parPHP - Faisant écho à plusieurs citations imbriquées de HTML

echo "<a class='fa fa-ban fa-2x cancelClass' onClick='cancelClass('$id', '$formattedDate', '$time')'></a><p class='text-center'>".$formattedDate." @ $time</p>"; 

Je ne reçois pas d'erreur. Mais les guillemets pour onClick = 'cancelClass ... ne sont pas correctement analysés, ce qui conduit à l'exécution de la fonction javascript.

Comment ça se code couleur dans la source Google Chrome Voir

Comment il doit obtenir un code couleur (exemple d'une autre fonction) enter image description here

+0

PHP fait la différence entre les devis simples et les devis doubles. Vous pouvez essayer d'être cohérent dans l'utilisation –

+0

'"' https://stackoverflow.com/questions/25916943/use-for-the-quot-entity-in-html –

Répondre

2

changement à la

suivante
echo "<a class=\"fa fa-ban fa-2x cancelClass\" onClick=\"cancelClass('$id', '$formattedDate', '$time')\"></a><p class=\"text-center\">".$formattedDate." @ $time</p>"; 

échapper à l'attribut guillemets vous pouvez avoir un html normalisé

+1

Ah merci. J'ai oublié le pouvoir de sauver la vie de l'antislash. –

1

Vous devez faire quelque chose comme:

echo "<a class='fa fa-ban fa-2x cancelClass' onClick=\"cancelClass('".$id."', '".$formattedDate."', '".$time."')\"></a><p class='text-center'>".$formattedDate." @ $time</p>"; 
1

Ils font s'analysée correctement, mais vous avez spécifié les mauvais à utiliser. Javascript ne peut pas faire la différence entre les guillemets pour envelopper vos variables de chaîne et les guillemets pour envelopper la valeur "onclick", il pense que l'onclick se termine trop tôt. Pour les différencier, vous devrez leur échapper puis. en utilisant \" pour ceux à l'intérieur des parenthèses.

echo "<a class='fa fa-ban fa-2x cancelClass' onClick='cancelClass(\"$id\", \"$formattedDate\", \"$time\")'></a><p class='text-center'>".$formattedDate." @ $time</p>"; 

devrait faire l'affaire.

Sinon, ne pas utiliser d'écho pour la chaîne entière, simplement la sortie la plus grande partie directe:

?> //temporarily stop interpreting the file as PHP, so the next bit will be output directly as raw HTML 
<a class='fa fa-ban fa-2x cancelClass' onClick='cancelClass("<?php echo $id;?>", "<?php echo $formattedDate; ?>", "<?php echo $time;?>")'></a><p class='text-center'>".$formattedDate." @ $time</p> 
<?php //continue with PHP 
0

En utilisant des guillemets doubles en HTML. Utilisation de htmlspecialchars avec ENT_QUOTES pour échapper les valeurs qui ont un guillemet double.

echo '<a class="fa fa-ban fa-2x cancelClass" onClick="'.htmlspecialchars("cancelClass('$id', '$formattedDate', '$time')", ENT_QUOTES). 
'"></a><p class="text-center">'.$formattedDate." @ $time</p>";