2 Stimmen

Müssen Hilfe bei der Einreichung dieses Formulars mit jQuery erhalten... Es wird eingereicht, aber der gesamte Browser wird aktualisiert

 $idc = $_GET['id'];
    $name1 = $_GET['name'];
    $id2 = $_GET['ids'];
     if ($_POST['message_field'] != ""){
        $message_field = $_POST['message_field'];

          $sql = mysql_query("INSERT INTO comment (mem_id,commented_men_id, message, message_date) 
         VALUES('$userid','$idc','$message_field', now())")  
         or die (mysql_error());

    }

        $sql_message = mysql_query("SELECT id, mem_id ,message, message_date FROM comment WHERE mem_id='$userid'  ORDER BY message_date DESC");

        while($row = mysql_fetch_array($sql_message)){

            $id = $row["id"];
            $me_id = $row["mem_id"];
            $json = $row["message"];
                 $message_date = $row["message_date"];
                $message = json_encode($json);

 $sql_mem_data = mysql_query("SELECT id, name FROM users WHERE  id='$me_id'");
              while($row2 = mysql_fetch_array($sql_mem_data)){
                $id = $row2["id"];
                $ufirstname = $row2["name"];
        }

    $messageList .= '' . ufirstname . ''.$the_message.'';

    }

     Buch

    $(document).ready(function(){

       $("#messageinput").click(function() {
           $.post($('#message').attr("action"),
                  $("#message").serialize(),
                  function(html) {
                    var comment = $(html) .find('#messageoutput').html();
                      $("#pmessage").html(comment);
              });
   });
       });

3voto

LoneWOLFs Punkte 2286

Sie können es so machen... Nehmen wir an, dies ist Ihr HTML:

Dann wird der folgende Code die Formulardaten übermitteln und das Ergebnis in der Variablen 'data' zurückgeben. Sie können dann mit den zurückgegebenen Daten machen, was Sie möchten. Im Beispiel lege ich die zurückgegebenen Daten in ein div mit der id="result".

$(document).ready(function(){
    $("#messageinput").click(function(){
        $.post('html.php',$("#form1").serialize(),function(data){
            $("#result").html(data);
        });

    });
});

Lösung für dein geändertes Skript

';
    while($row = mysql_fetch_array($sql_message))
    {
        $j=$i++;
        $id = $row["id"];
        $me_id = $row["mem_id"];        
        $message_date = $row["message_date"];
        //$json = $row["message"];
        //$message = json_encode($json);
        $message = $row["message"]; //json vorübergehend deaktivieren

        $sql_mem_data = mysql_query("SELECT id, name FROM users WHERE  id='$me_id'");

        while($row2 = mysql_fetch_array($sql_mem_data))
        {
            $id = $row2["id"];
            $ufirstname = $row2["name"];
        }
        //$messageList .= '' . ufirstname . ''.$the_message.''; //[Fehler 1] Du schreibst das außerhalb while loop auch id="only" mehrmals erstellen Fehler gleich mit id="pmessage"
        /*[error 1] Rectification*/ $messageList .= ''.$ufirstname.''.$message.'';
    }
    $messageList .= ''; //ID="result" als Elternelement aller Zeilen
    echo $messageList; //Skript muss für jQuery echo, um es zu fangen.
?>

 Buch

$(document).ready(function(){
/*Ich habe immer noch nicht verstanden, warum du $id2 und &name2 benutzt, aber der obige PHP-Block wird nur verwendet, um die Daten abzurufen, die vom JavaScript übergeben werden
also brauchst du 2 Ereignisse, erstens wenn die Seite geladen wird und zweitens wenn die Seite mit einem neuen Kommentar gepostet wird
*/
(function($)
{
    $.getParam = function(key)
    {
        var urlParams = decodeURI( window.location.search.substring(1) );
        if(urlParams == false | urlParams == '') return null;
        var pairs = urlParams.split("&");

        var keyValue_Collection = {};
        for(var value in pairs)
        {
            var equalsignPosition = pairs[value].indexOf("=");
            if (equalsignPosition == -1) 
                keyValue_Collection[ pairs[value] ] = ''; 
            else
                keyValue_Collection[ pairs[value].substring(0, equalsignPosition) ] = pairs[value].substr(equalsignPosition + 1);
        }
        return keyValue_Collection[key];
    }
})
(jQuery);

//Hole die ID, um die Nachrichten abzurufen
var id = $.getParam("id");

//Wenn es sich um einen Klick handelt
$("#messageinput").live('click',function(){
    var msg = $("#message_field").val();
    var qstring='id='+id+'&message_field='+ msg;
    $.post('engine.php',qstring,function(data){
        $("#messageoutput").html(data);//binde die gesamten Daten an das messageoutput div, da es bereits für das richtige HTML formatiert ist
    });
});

//Lade standardmäßig Nachrichten
var qstring = 'id='+id;
$.post('engine.php',qstring,function(){
    $("#messageoutput").html(data);//In diesem PHP-Skript werden nur die Nachrichten für die übergebene ID zurückgegeben.
});

});

1voto

Karthik Punkte 522

Verwenden Sie type="button" anstelle von type="submit" im Eingabefeld. Weil der Absendebutton das Formular absendet und die Seite neu lädt.

0voto

Ich denke, dass du ein Formular nicht ohne Aktualisierung der Seite mit type="submit" absenden kannst. Verwende stattdessen type="button".

0voto

addedlovely Punkte 2957

Verwenden Sie das submit-Ereignis auf dem Formular anstelle von Click.

$('#submit).submit(function() {
  alert('Handler für .submit() aufgerufen.');
  return false;
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X