저는 실시간 토론 양식을 작성 중입니다. 이 페이지는 MySQL에서 스레드를로드하고 4 초마다 AJAX를 통해 새로 고칩니다. 각 스레드에 대한 마지막 코멘트 다음에는 댓글 용 텍스트 입력이 있습니다 (Facebook과 매우 유사합니다).ajax를 사용하여 새로 고침하고 양식 데이터를 유지하는 방법
사용자가 입력 내용을 쓰고 페이지를 새로 고치면 메시지가 사라진다는 점을 제외하면 모든 것이 잘 작동합니다. 보안 및 개인 정보 보호가이 프로젝트의 주된 목표이기 때문에 쿠키를 사용하고 싶지 않습니다. 많은 솔루션을 시도해 보았지만 몇 시간 동안 솔루션을 검색했지만 아무 것도 작동하지 않는 것 같습니다.
- 페이지가 새로 고침 될 때마다
$_post
에 가능한 해결책이 있습니까? - 입력 된 값을 캐싱하고
$_session
또는 로컬 저장소에서 검색하는 경우 누구나 더 구체적인 접근 방식을 제안 할 수 있습니까? 즉 : 리스너를 넣을 위치 : - 입력 값이 ""과 다르지만 페이지가 다시로드되지 않도록하는 기능을 만들려고했지만 나에게 적합하지 않습니다.
여기 내 새로 고침 코드 :
<script type="text/javascript">
var PHP = "msgboard.php";
function updateShouts(){
$('#msgboard').load(PHP);
}
window.setInterval("updateShouts()", 4000);
</script>
그리고 여기에 주요 PHP 함수이다 : 사전에
while($row = mysql_fetch_array($resultados)) {
echo '<div class="post">
<div class="user"><b>'.$row["user"].'</b></div>';
echo ' <div class="txt">'.$row["msg1"].'</div>
</div>';
$sql2="SELECT * FROM table WHERE masterid = '".$row['id']."'ORDER BY id ASC";
$resultados2 = mysql_query($sql2);
while($row2 = mysql_fetch_array($resultados2)) {
echo '<div class="comment">
<div class="txt"><b>'.$row2['user'].'</b>';
echo ' '.$row2['msg1'].'</div>
</div>';
}
echo '<div class="commentform">
<form action="board.php" method="post">
<input type="text" size="75" name="message" id="message1">
<input type="hidden" name="masterid" value="'.$row['id'].'">
<input type="submit" name="Submit" value="Enviar"></form>
</div>' ;
}
감사합니다!
페이지의 일부분 만 업데이트해야합니다. 사용자가 입력하는 입력 필드를 처음으로 업데이트하는 이유는 무엇입니까? –
안녕하세요! 2 가지 이유 : 1. 마지막 주석 바로 아래에 입력을 넣고 2. 주 스레드의 ID를 가져와 숨겨진 입력에 저장 – Nenitus
@aziz가 말했듯이 주석을 업데이트하면됩니다. ajax 검색된 주석을 입력 위에 놓을 수 있으며 주 스레드의 ID는 여전히 숨겨진 입력에 설정됩니다. – Lando