2014-12-03 22 views
0

任何人都有任何見解,爲什麼這段代碼沒有顯示剩餘字符,只顯示最大字符數,我已經經歷了幾次,我似乎無法找到錯誤。表格輸入的字符計數器 - 不包括

HTML

<form class="comment" method="post" action="postComment.php"> 
    <input type="text" placeholder="Name" name="Cname" onKeyUp="charLeft(this.value,30,'n')"><br/><span id="nCharLeft"></span><br/> 
    <input type="text" placeholder="Email" name="Cemail" onKeyUp="charLeft(this.value,50,'e')"><br/><span id="eCharLeft"></span><br/> 
    <textarea rows="4" placeholder="Please leave a comment." name="Ccomment" onKeyUp="charLeft(this.value,300,'c')"></textarea><br/><span id="cCharLeft"></span><br> 
    <input type="submit" value="Post Comment"><br/> 
</form> 

的JavaScript

function charLeft(val,len,indi) { 
    var output = indi + "CharLeft"; 
    if (val.length==0) { 
     return; 
    } 
var xmlhttp=new XMLHttpRequest(); 
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     document.getElementById(output).innerHTML=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET","charLeft.php?q="+val+"&m="+len,true); 
xmlhttp.send(); 
} 

PHP(charLeft.php)

<?php 
$v = $_REQUEST['v']; 
$m = $_REQUEST['m']; 
$len = strlen($v); 
$charleft = $m - $len; 

echo $charleft==="1" ? "$charleft character left." : "$charleft characters left."; 
?> 

回答

1

在你的AJAX調用,你在Q發送價值,但訪問它作爲 $ v = $ _REQUEST [ 'V'];

所以,在AJAX調用作爲 xmlhttp.open要麼改變( 「GET」, 「charLeft.php V =?」 + VAL + 「&米=」 + LEN,TRUE);

或PHP中的更改爲 $ v = $ _REQUEST ['q'];

+0

啊,我知道它會簡單一些,歡呼隊友。 – MCMXCII 2014-12-03 11:53:33

0

您發送 「charLeft.php Q =」 + VAL + 「&米=」 + len,但通過$ v = $ _REQUEST ['v']獲取值;

嘗試用

$v = $_REQUEST['q']; 
相關問題