2016-12-30 3 views
0

Добрый вечер SO community,PHP - сообщение для себя без обновления (или другая альтернатива)

Я пытаюсь создать глобальную чат-систему для своей сети веб-сайтов. Другими словами, сотрудник может зайти на сайт www.myadminswebsite.com и проверить системы чата на всех наших других внешних сайтах. У меня система работает достаточно хорошо, за исключением того факта, что страница обновляется каждый раз, когда пользователь отправляет новое сообщение. Есть ли что-то, что я могу сделать, чтобы не обновлять страницу, чтобы отправить сообщение? В настоящее время я использую HTML-форму, которая помещает в себя, затем страница проверяет, существует ли $ _POST ["var"], а затем записывается в файл журнала IM.

код из формы HTML

<form method='POST' action='" . $_SERVER['PHP_SELF'] . "'> 
    <input type='text' name='newMSG' id='lcTextInput' placeholder='Type a Message'> 
    <input type='submit' value='Send'> 
</form> 

Функция Процесс POST

if (isset($_POST['newMSG'])) { 
    $wHandle = fopen($lFile, "a"); 
    fwrite($wHandle, "[CUSTOMER] " . $_POST['newMSG'] . "\n"); 
    fclose($wHandle); 
} 

Это делает то, что мне нужно делать, кроме обновления страницы. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация или у вас есть идеи!

Спасибо заранее,

Tim

+0

Вы проверили эту ссылку? http://stackoverflow.com/questions/2866063/submit-form-without-page-reloading –

ответ

1
<form> 
<input type='text' name='newMSG' id='lcTextInput' placeholder='Type a Message'> 
    <input type='submit' value='Send' id="submit"> 

</form> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

<script> 
$('#submit').click(function() 
{ 
var message=$("#lcTextInput").val(); 
    $.ajax({ 
     url: "msg.php", 
     type:'POST', 
     data: 
     { 
      action: 'addmsg', 
      message: message 
     }, 
     success: function(msg) 
     { 
      $(".li").append(message); 
     }    
    }); 

return false; 
}); 

</script> 
+0

Вам нужно сделать тип отправки в виде кнопки или на основании действия, которое вы должны сохранить в базе данных. –

+0

Можно ли это сделать без кнопки отправки? Например, пользователь просто нажимает Enter? –

+0

да это сработает –

0

Изменение формы действия на:

<form method='POST' action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <input type='text' name='newMSG' id='lcTextInput' placeholder='Type a Message'> 
    <input type='submit' value='Send'> 
</form> 
+0

Благодарим за быстрый ответ. Этот бит кода уже содержит инструкцию PHP Echo, поэтому он отформатирован так, как в приведенном выше коде, опустив операторы и echo. –

+0

А мне плохо. Должен предположить, что –

0

$('#submit').click(function() 
 
{ 
 
var message=$("#lcTextInput").val(); 
 
    $.ajax({ 
 
     url: "msg.php", 
 
     type:'POST', 
 
     data: 
 
     { 
 
      action: 'addmsg', 
 
      message: message 
 
     }, 
 
     success: function(msg) 
 
     { 
 
      $(".li").append(message); 
 
     }    
 
    }); 
 

 
return false; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
<input type='text' name='newMSG' id='lcTextInput' placeholder='Type a Message'> 
 
    <input type='submit' value='Send' id="submit"> 
 

 
</form>

+0

CORS issue !!!! вы можете запустить этот код? – Hitesh

+0

@Hitesh да, это прекрасно работает, вы должны добавить его проверить в своей системе –

+0

Спасибо, я проверю систему !!! Поскольку вы разделили фрагмент кода, я подумал, что он тоже должен работать там – Hitesh

Смежные вопросы