2016-06-10 17 views
0

Ich starte Musik über den Button 'Submit', und als Ergebnis wird mein Formular nicht an das globale Array $ _POST gesendet. Wie geht das? Sollte ich AJAX benutzen? Wie? Musik spielt, aber Form wird nicht gesendet :(

<?php 

    include_once 'connect.php'; 



if($_POST['text']){ 
    mysqli_query($CONNECT,"TRUNCATE TABLE user"); 
     $query = "INSERT INTO user VALUES ('','$_POST[text]')"; 
     mysqli_query($CONNECT, $query); 
} 
    ?> 




<!DOCTYPE html> 
     <html> 
      <head> 
       <meta charset="utf-8" /> 
       <title>Input</title> 
       <link href="style.css" rel="stylesheet"> 
       <script src="jquery-2.2.3.min.js"></script> 

       <script> 
       $(document).ready(function() { 
        $('.button').click(function(event) { 
        $('.chatMessage').val(''); 
        var audio = document.getElementById('audioFile'); 
        audio.currentTime = 0; 
        audio.play(); 
        audio.loop = true; 
        event.preventDefault(); 
        });    
       }); 
      $("#form").submit(function(event){ 
       var $form = $(this); 
       var $inputs = $form.find("input, button, textarea"); 
       var serializedData = $form.serialize(); 
       $inputs.prop("disabled", true); 
       $.ajax({ 
        url: "/index.php", 
        type: "post", 
        data: serializedData 
       }); 
       }); 
       </script> 
       </head> 

       <body> 
       <audio id="audioFile"> 
        <source src="font/sound.mp3" type="audio/mpeg"> 
       </audio> 
       <div class="inputMessage"> 

        <form id="form" method="POST" action="/index.php"> 
        <textarea class="chatMessage" name="text" placeholder="Текст сообщения"></textarea> 
        <br> 
        <input class="button" type="submit" name="enter" value="Отправить"> 
        <input type="reset" value="Очистить"> 
        </form> 
       </div> 
       </body> 
     </html> 

ich Ihre Antworten benötigen, bitte!

+0

Sollten Sie mir mit Code helfen? Ich weiß nicht, wie man es an Array sendet – Catalina

+0

Sie müssen zuerst lernen, wie Sie Daten mit Ajax übermitteln. [Jquery] (https://api.jquery.com/jquery.post/) ist ein gutes Tool. Komm zurück zum Stackoverflow, nachdem du recherchiert hast, einen soliden Versuch unternommen hast und eine spezifische Frage hast. – jszobody

+0

Ich versuche das, aber es spielt Musik, aber sendet keine Form: '$ (" # form "). Submit (function (event) { var $ form = $ (this); var $ input = $ form.find ("input, button, textarea"); var serializedData = $ form.serialize(); $ inputs.prop ("deaktiviert", true); $ .ajax ({ url: "/ index .php ", Typ:" post ", Daten: serializedData }); }); ' – Catalina

Antwort

0

Es gibt ein paar Probleme. Erstens, Sie überschreiben die Click-Handler für den Button. Wenn Sie möchten, dass das Formular auch gepostet wird, sollten Sie am Ende Ihres Handlers return true; eingeben

Außerdem werden Sie feststellen, dass der Browser die Seite neu lädt, wenn dies geschieht, also gibt es keinen wirklichen Grund, warum Sie möchten um Musik zu spielen, stattdessen sollten Sie etwas PHP hinzufügen, um JavaScript hinzuzufügen, das die Musik spielt, wenn Sie richtig empfangen die Postdaten.

Alternativ könnten Sie die Daten mit AJAX innerhalb Ihres Click-Handlers senden, wie @jszobody vorschlägt.

0
$.ajax({ 
    type: "POST", 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
});