2016-06-16 7 views
-1

Ich arbeite in Dreamweaver CS5, was bedeutet, dass der PHP automatisch erstellt wird. Ich kenne einige PHP, aber ich kann nicht einen Weg finden, um die Seite neu zu laden, wenn ich den Absenden-Button klicke. Ich möchte nicht, dass es sich auffrischt, weil ich einen Chat-Dienst mache, bei dem das Auffrischen nur lästig wird. Php, die Informationen zu MySQL-Datenbank sendet:Verhindern, dass die Seite beim Aktualisieren aktualisiert wird, in php

$editFormAction = $_SERVER['PHP_SELF']; 
if (isset($_SERVER['QUERY_STRING'])) { 
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); 
} 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "send")) { 
$insertSQL = sprintf("INSERT INTO chat (chat_info, person_id, chat) VALUES (%s, %s, %s)", 
        GetSQLValueString($_POST['chatid'], "text"), 
        GetSQLValueString($_POST['personid'], "text"), 
        GetSQLValueString($_POST['chat'], "text")); 

mysql_select_db($database_LVGSChat, $LVGSChat); 
$Result1 = mysql_query($insertSQL, $LVGSChat) or die(mysql_error()); 
} 

HTML-Formular:

<form method="POST" action="<?php echo $editFormAction; ?>" name="send" id="send"> 
    <input name="chat" type="text" id="sendtext" placeholder="Skriv en melding..." /> 
    <input type="button" id="sendbutton" value="" name="submit"/> 
    <input type="hidden" value="<?php do { ?><?php 
    if (strtolower($row_medlemmer['brukernavn']) == strtolower($_SESSION['MM_Username'])) { 
     echo $row_medlemmer['medlemmer_id'];} 
    ?><?php } while ($row_medlemmer = mysql_fetch_assoc($medlemmer)); ?>" name="personid" /> 

    <input type="hidden" value="3" name="chatid" /> 
    <input type="hidden" name="MM_insert" value="send" /> 
</form> 

Ich lege die Art zu ändern versucht haben, von zu Taste, aber es hielt nur das gesamte Skript.

+0

Dann einfach Ajax verwenden. – nicael

+0

@nicael Ich habe keine Erfahrung mit Ajax ... Könnten Sie mir zeigen, wie ich Ajax in dieses Skript implementieren könnte? : P –

+0

@ReinBentdal sehe meine Antwort, ich habe ein paar Links aufgenommen. – KFE

Antwort

0

Dies ist ein häufiges Problem, das mit jQuery behoben werden kann. Was Sie suchen, ist eine AJAX-Formularübermittlung. Wenn Sie mit jQuery nicht vertraut sind, here is a jquery getting started guide.

Sobald Sie das jQuery-Skript zu Kopf/Fuß Ihres Dokuments hinzugefügt haben, können Sie dann das AJAX-Formular abschicken. Informationen nicht erneut aufbereiten, check out this tutorial from scotch.io on AJAX Form submits. In diesem Tutorial wird alles für Sie erledigt.

Die Hauptsache, die Sie suchen, ist, in Javascript preventDefault() zu nennen, wenn Ihre Taste geklickt wird, also würde ich darüber nachlesen.

0

Zwei Möglichkeiten, um das Aktualisieren der Seite zu verhindern.

1) javascript :; in Form Aktion. 2) javascript oder jquery verwenden und Ajax verwenden, um Daten zu übergeben. Ich teile jQuery Beispielcode.

+0

Vielen Dank für Ihre Hilfe! Aber ich habe nicht ganz verstanden, was du gesagt hast. Wo sollte dieser Code in dem Dokument sein und wie sollte es verwendet werden? Ich habe fast keine Erfahrung mit javascript: P –

+0

Sie können eine Datei mit custom.js oder mit einem beliebigen Namen, dann fügen Sie diese Datei in der Fußzeile erstellen. Das ist es. Sie können Js-Code für die Site in dieser Datei hinzufügen. –