2017-03-13 5 views
0

PHP를 사용하여 온라인 채팅방을 만들고 채팅을 새로 고침 버튼이 있습니다. 나중에 버튼이 숨겨 지지만 자바 스크립트가 자동으로 매초마다 클릭하지만 매번 약간의 문제가 있습니다. 클릭하면 텍스트 상자가 다시 설정되므로 사용자는 메시지를 다시 시작해야합니다. 다음은 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