• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formular wird nicht abgesendet

bengaltiger

Neues Mitglied
hallo

ich hab ein kleines problem:

eine php datei gibt ein fromular aus nach dem ich auf ein button geklickt habe
das ganze mache ich über ajax
das einfügen des formulares funktioniert aber das absenden nicht

hier mein php code:
PHP:
    echo'  <tr class="editevent"><td colspan="5"><table>
  <form method="post" action="/admin/index.php?page=eventmanager" enctype="multipart/form-data">
  <tr>
    <td><a class="label">Title:</a></td>
    <td><input type="text" name="edittitle" value="'.$event['title'].'" /></td>
    <td><a class="label">Info:</a></td>
    <td rowspan="4"><textarea name="editdescription">'.$event['description'].'</textarea></td>
  </tr>
  <tr>
    <td><a class="label">Location:</a></td>
    <td><select name="editlocation">
    <option>'.$event['location'].'</option>';
    foreach ($locations as $location){
        echo'<option>'.$location['name'].'</option>';
    }
    echo'</select></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><a class="label">Datum:</a></td>
    <td><input type="text" name="editdate" value="'.$event['date'].'"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><a class="label">Zeit:</a></td>
    <td><input type="text" name="edittime" value="'.$event['time'].'" /></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><a class="label">Eintritt:</a></td>
    <td><input type="text" name="editprice" value="'.$event['price'].'" /></td>
    <td> <a class="label">Fyler:</a></td>
    <td><input type="file" name="editflyer" size="46" /></td>
  </tr>
  <tr>
      <td colspan="4"><a class="label">* Hinweis  Datumformat: 01.01.2012 | Zeitformat: 09:05 | Eintrittformat: 1.01</a><input type="hidden" value="'.$event['id'].'" /><button type="submit" name="editevent">editEvent</button></td>
  </tr>
  </form>
</table></td></tr>';


und hier mein ajax code:
Code:
$(document).ready(function() {
    $(".button_edit").live("click",function() {
        var val = $(this).attr('id');
        $.ajax({
            type: "POST",
            url: "/admin/includes/eventmanager.php",
            data: "geteditdata="+val,
            dataType:"html",
            cache: false,
            success: function(html){
                $(html).insertAfter("#event_"+val);
            }
        });
        return false;
    });            
})

hab auch mit einfachen formularen versucht klappt aber nicht..


bin für jede hilfe dankbar

MfG
 
Was heißt "funktioniert nicht"? Was passiert, wenn Du das Formulare abschickst genau?
 
@threadi wen ich aufs button klicke sollen ja die daten abgeschickt werden bzw die url was in action steht aufgerufen werden, aber es passiert nix

@t4k3c4r3
wenn du das hier noch brauchst :
Code:
 <h1>Event verwalten</h1>
  <table class="manageevent">
  <thead>
    <td>Id</td>
    <td>Titel</td>
    <td colspan="3">Operationen</td>
  </thead>
  <?php foreach ($events as $event): ?>
  <tr id="event_<?=$event['id']?>">
    <td><?=$event['id']?></td>
    <td><?=$event['title']?></td>
    <td><img class="button_gallery" id="<?=$event['id']?>" src="../../images/image.png" /></td>
    <td><img class="button_edit" id="<?=$event['id']?>" src="../../images/edit.png" /></td>
    <td><img class="button_delete" id="<?=$event['id']?>" src="../../images/delete.png" /></td>
  </tr>
  <?php endforeach;?>
</table>

hab das auch mit einer einfaceren formular versucht..
 
Dann schau dir mal an, welchen HTML-Code die Seite hat nachdem der Request beendet ist. Das kannst Du z.B. im Firefox in der Quellcode-Ansicht oder über Firebug machen (wobei Firebug den Code immer optimiert, schlimmstenfalls etwas verfälscht, ausgibt).

EDIT: Mir fällt gerade auf, dass Du mit dem Response per AJAX nicht validen HTML-Code bekommst. Das Formular steht zwischen <tr> und <td> was nicht zulässig ist. Folglich wird ein Browser das Formular auch nicht als solche erkennen, besonders wenn es per AJAX zurück gekommen ist. Klarheit darüber sollte dir die o.g. Analyse bringen. Du musst also den HTML-Code so umbauen, dass das Formular nicht zwischen Tabellenelementen liegt. Es kann die Tabelle umgeben oder innerhalb einer Tabellenzelle liegen, aber nicht dazwischen.
 
Zurück
Oben