Nasıl php içinde benim javascript karakter sayacı iş yapabilirim?

4 Cevap php

Ben bir metin alanının içinde kullanabileceğiniz bir javascript karakter sayaç var. Ben php, hiçbir şey içine bir metin alanının içinde aynı kodu koymak, normal html harika çalışıyor ama.

Gayet iyi çalışıyor zaman burada html şöyledir:

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

İşte bu benim php form içinde uygulanır:

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

4 Cevap

yerine alıntı, kaçmak gerekir:

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

Yapabileceğiniz:

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

Bir alıntı yuvalama sorunu var. Eğer tek tırnak ile textarea ve onkeyup niteliğini çevreleyen, ama aynı zamanda javascript pasajı içindeki tek tırnak kullanarak ediyoruz. Eğer PHP dize için çift tırnak kullanıyorsanız bu yana, kullanımı, javascript pasajındaki çift tırnak (\") kaçtı.

Tabii ki, bu bir dış dosyaya javascript ayırmak, ve keyup olaya bağlamak için daha iyi olurdu. Sen textarea için id atama ve bazen DOM hazır sonra aşağıdaki arayarak bunu kolayca yapabilir:

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

PHP sunucu tarafında tamamen çalışır. Tarayıcınız PHP bir iz, PHP komut dosyası tarafından oluşturulan sadece HTML kodunu görür asla. JavaScript istemci tarafında tamamen çalışır.

HTML elle kodlama, ya da bir HTML komut geliyor olsun, aslında önemli değil. Ne bakmak için gereken komut tarayıcınızın "Kaynağı Görüntüle" modunda üretilen HTML. Yanı sıra soru içine gönderin.

Eğer tek tırnak çift tırnak bazı değişti. Bu örneğin burada, hatalara neden olur:

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

Orijinal karşılaştırın:

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

Bunun yerine, onları değiştirmek yerine tırnak kaçmak gerekir:

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