2010-01-20 2 views
0

J'ai un compteur de caractères javascript que j'utilise à l'intérieur d'une zone de texte. Cela fonctionne très bien en html normal, mais quand je mets exactement le même code dans une zone de texte à l'intérieur de php, rien.Comment faire pour que mon compteur de caractères javascript fonctionne à l'intérieur de PHP?

Ici, il est en html quand il fonctionne très bien:

<div id="counter"> 
    <span id="counter_airway" style="font-size:11px; color:#666666;">140 Character Limit</span> 
</div> 
<div id="grapvine_text"> 
<form name="CommentBox" method="post" action="Profile.php?id=<?php echo $prof->id; ?>"> 
    <textarea name='airway' class='round_10px' onkeyup="limit_length(this,140,'counter_airway');"></textarea> 
</form> 

Ici, il est mis en œuvre dans mon formulaire php:

<div id="commentBoxBlog"> 
    <form name="CommentBox" method="post" action="Profile.php?id=<?php echo $prof->id; ?>"> 

     <?php 
     if($auth->id == $prof->id) { 
      echo "<div id='counter'> 
       <span id='counter_airway' style='font-size:11px; color:#666666;'>140 Character Limit</span> 
       </div><textarea name='airway' class='round_10px' onkeyup='limit_length(this,140,'counter_airway');'></textarea> 
       <input type='submit' name='commentProfileSubmit' value='Exhale' class='post'/>"; 
     } 
     elseif(!$auth) { 
      echo "<textarea name='ProfileComment' class='round_10px' disabled>Please sign in to comment...</textarea>"; 
     } 
     elseif($auth->id != $prof->id) { 
      echo "<textarea name='ProfileComment' class='round_10px'></textarea> 
      <input type='submit' name='commentProfileSubmit' value='Exhale' class='post' />"; 
     } 
     ?> 

    </form> 
</div> 

</div> 

Répondre

2

besoin d'échapper à la citation, au lieu de:

onkeyup='limit_length(this,140,'counter_airway') 

vous pouvez faire:

onkeyup='limit_length(this,140,\"counter_airway\")' 
1

PHP fonctionne entièrement sur le côté serveur. Votre navigateur ne voit jamais une trace de PHP, juste le code HTML généré par votre script PHP. Javascript fonctionne entièrement du côté client. Que votre HTML provienne d'un codage à la main ou d'un script HTML, ce n'est pas important pour l'essentiel. Ce que vous devez regarder est le HTML que votre script produit dans le mode "View Source" du navigateur. Veuillez également le signaler dans votre question.

2

Vous avez une citation question de nidification. Vous entourez l'attribut onkeyup du textarea avec des guillemets simples, mais également en utilisant des guillemets simples à l'intérieur de cet extrait JavaScript. Puisque vous utilisez des guillemets doubles pour la chaîne PHP, utilisez des guillemets doubles échappés (\") dans votre extrait JavaScript.

Bien sûr, il serait encore mieux de séparer javascript dans un fichier externe et de lier à l'événement keyup. Vous pouvez le faire facilement en attribuant un id à votre textarea, et d'appeler ce qui suit quelque temps après le DOM est prêt:

var textarea = document.getElementById('myTextarea'); 
textarea.onkeyup = function() { limit_length(this,140,'counter_airway'); } 
1

Vous avez changé quelques-unes des guillemets doubles guillemets simples. Cela entraînera des erreurs, par exemple ici:

onkeyup='limit_length(this,140,'counter_airway');' 

Comparez cela à l'original:

onkeyup="limit_length(this,140,'counter_airway');" 

Vous devez échapper aux citations plutôt que de les changer:

onkeyup=\"limit_length(this,140,'counter_airway');\" 
Questions connexes