2011-01-05 2 views
0

Ich habe zwei Senden-Schaltflächen in einem Formular. Einer, der den Beitrag löscht und einen, um ihn zu bearbeiten.SerializeArray enthält keine Submit-Button-Wert

Ich möchte eine Fancybox entweder mit dem Bearbeitungsformular oder einer Nachricht anzeigen, dass der Benutzer den Beitrag gelöscht hat. Es wird entschieden, welcher Button mit einem "if (isset)" - Satz in der edit.php gedrückt wurde. Allerdings kann ich nicht herausfinden, wie den Wert der Taste, um im serializeArray .. Ich habe versucht, mit .click (function() statt, aber das hat nichts mit dem fancybox senden ..

$("#form").bind("submit", function() { 
        $.ajax({ 
         type  : "POST", 
         cache  : false, 
         url   : "edit.php", 
         data  : $(this).serializeArray(), 
         success: function(data) { 
          $.fancybox(data); 
         } 
        }); 

        return false; 
       }); 

das Formular sieht wie folgt aus:

<form method='post' action='' id="form"> 
    <input type='submit' value='Edit' name='edit' /> 
    <input type='submit' value='Delete' name='delete' onClick="return slett('<?php echo $oppgave->name; ?>')"/> 
    <input name='oppgaveID' type='hidden' value='<?php echo $oppgave->id; ?>' /> 
</form> 

ich es wirklich schätzen würde, wenn mir jemand helfen könnte Vielen Dank im Voraus

Antwort

0

Aus der jQuery-Dokumentation für serialize():!

Nur "erfolgreiche Steuerungen" werden in die Zeichenfolge serialisiert. Kein Wert für den Übergabe-Button wird serialisiert, da das Formular nicht über eine Schaltfläche gesendet wurde. Damit ein Formularelementwert in die serialisierte Zeichenfolge eingeschlossen wird, muss das Element ein name-Attribut aufweisen. Daten aus Dateiauswahlelementen werden nicht serialisiert.

Die Regeln für eine "erfolgreiche Kontrolle" werden hier definiert:

Besuche

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2

Auch this Stack Overflow solution von Nick Craver.

+0

danke! Ich habe es jetzt geschafft :) – guzh