2016-11-01 9 views
-2

Ich erstelle einen einfachen Chat-Raum, der mit einer Login-Seite in index.php beginnt.
Es gibt ein Formular, das eine Passwortvariable an PHP_SELF sendet und PHP erhält die Variable und wenn das Passwort korrekt war, tritt der Benutzer erfolgreich in den Chat-Raum ein.

Es gibt eine Nachrichteneingabe, die wie ein Formular funktioniert.
Aber ich kann Formular nicht mehr verwenden, denn wenn Formular Nachrichteneingaben sendet, lädt die Seite neu und Benutzer geht auf die erste (Login-Seite).
Also ich möchte meine variable ohne neu zu laden Seite senden.

Ich habe versucht mit $var = "document.getElementById('input).innerHTML", Aber das wird keinen Wert zurück!

Ich habe versucht, mit AJAX. Chatroom ist index.php und meine Assistenzseite ist post.php.
index.php AJAX funktioniert ungefähr so:

  var message = 'document.getElementById('input).innerHTML'; 
      $.ajax({ 
       type: "POST", 
       url: 'post.php', 
       data: message, 
       success: function(data) 
       { 
        alert("200"); 

       } 
      }); 
     }); 

post.php empfängt die Variable und es sendet Variable index.php wieder. post.php php:

if(isset($_POST['message'])) $mymsg= $_POST['message']; 

Und post.php AJAX:

  var message = '<?php echo $mymsg ?>'; 
      $.ajax({ 
       type: "POST", 
       url: 'index.php', 
       data: message, 
       success: function(data) 
       { 
        alert("200"); 

       } 
      }); 
     }); 

Ich meine, ich möchte, dass, wenn der Benutzer erfolgreich loged in und seine Botschaft geschrieben und legt geklickt haben, diese passieren wird. index.php empfängt die Variable und fügt sie in die Datenbanktabelle ein. Aber das funktioniert nicht für mich. Bitte sagen, was falsch ist, oder wie kann ich das tun?

+2

'$ POST_' Sie erkennen, dass das ein großer Syntaxfehler ist. Du legst das Pferd sozusagen hinter den Wagen. –

+0

Du gibst auch 'if (var =' anstelle von 'if (var ==' –

+0

und jetzt bearbeitest du "on the fly" ...). Nun muss ich jetzt laufen. Kommentare oben laut ursprünglicher Beitrag http://stackoverflow.com/revisions/40363160/1 –

Antwort

1

Ohne Ihren Browser neu zu laden können Sie Javascript verwenden

dies vor dem <body> Tag setzte

<script> 
$(document).ready(function(){ 
    $("#varbtn").click(function(){ 
     var var1 = $("#var").val(); 

      $.ajax({ 
       method: "POST", 
       url: "post.php", 
       data: { 
        var:var1 
        }, 
       success: function(data){ 
       //#success will be the id of the div you want to put the response of the php file 
        $("#success").html(data); 
       } 
      }); 
    }); 
}); 
</script> 

in Form, Sie brauchen nicht <form> Tag

<input type="text id="var" /> 
<button id="varbtn"> Submit</button> 

<!--this div will be the result of the post.php file--> 
<div id="success"></div> 

in der Post zu schaffen .php

//will check if the person will direct visit that post.php, this is not secured enough but hes doing his job actually 
<?php 
if(isset($_SERVER['HTTP_REFERER'])){ 
    if(!isset($_POST['var'])){ 
     //your codes here 
    } 
} 
?> 
+0

kein Problem ... :) –