2017-03-13 8 views
0

私はPHPを使ってオンラインチャットルームを作っています。チャットをリフレッシュするにはボタンがありますが、それは後で隠されますが、javascriptは自動的に毎秒これをクリックしますが、クリックするとテキストボックスがリセットされます。つまり、ユーザーはメッセージを再起動する必要があります。ここにデモteamhaxor.netau.net/Stuff/Chat/chat.phpがあります。PHPのテキストボックスのリセット

これはコードです:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
<input type="submit" name="refresh" id="update"> 
</form> 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
<input type="text" name="text" id="text"> 
<input type="submit" name="send"> 
</form> 



<?php 

if(isset($_POST['refresh'])) /* i.e. the PHP code is executed only when someone presses Submit button in the below given HTML Form */ 
{ 
if ($file = fopen("log.txt", "r")) { 
    while(!feof($file)) { 
     $line = fgets($file); 
     echo $line . "<br>"; 
    } 
    fclose($file); 
} 
} 


if(isset($_POST['send'])) /* i.e. the PHP code is executed only when someone presses Submit button in the below given HTML Form */ 
{ 
$text = $_POST['text']; 
$myfile = fopen("log.txt", "a+") or die("Unable to open file!"); 
fwrite($myfile, "\n" . $text); 
fclose($myfile); 
} 



?> 


<script> 


setInterval(function(){ 

element = document.getElementById('update'); 
element.click() 

}, 1000); 



</script> 

は、どのように私はそれは、ユーザが入力されたテキストをリセットしないことができますか?前もって感謝します。

+0

なぜ送信ボタンを押す必要がありますか?タイマーに入れて自動的に起きさせてください – Machavity

+0

PHPのポーズでループを作成しようとしたときに機能していなかったので、すべてを変更しようとしましたが、まだ動作しませんでした。あなたがそれを理解したなら、ループのためのいくつかのコードを送ってください。ありがとう。 – Woowing

+0

私はあなたがクライアント側とサーバー側の違いを得るとは思わない。 – Machavity

答えて

1

jqueryコードを使用してフォームを送信するたびにページが更新されるため、テキストボックスがリセットされています。

これを修正するには、代わりにAJAX呼び出しを行う必要があります。

+0

どうすればいいですか?申し訳ありませんが、私はまだPHPを学んでいます。 – Woowing

+0

これを確認してください:http://stackoverflow.com/questions/13840429/what-is-the-difference-between-client-side-and-server-side-programming 答えは、クライアントとサーバ。純粋にhtmlを使用してクライアントからサーバーに何かを送信するには、そのたびにページがリロードされ、すべてのテキストボックスがリセットされます。 – Lambasoft

関連する問題