2016-07-05 14 views
1

Ich habe eine Multi-Form-Seite im Blick:Codeigniter nicht zurück Vornamens von Multi-Form-Seite einreichen

<?php echo form_open("account"); ?> 
// input fields 
<input type="submit" name="change-password" value="Change Password"/> 
</form> 

<?php echo form_open("account"); ?> 
// input fields 
<input type="submit" name="change-email" value="Change Email"/> 
</form> 

Und Controller Ich überprüfe:

if (!empty($_POST['change-password'])) 
    { 
     // 
    } 

    if (!empty($_POST['change-email'])) 
    { 
     // 
    } 

$_POST['change-password'] ist immer null .

Also habe ich versucht, sie Plätze zu wechseln und sogar dritte Form hinzugefügt. Was auch immer ich tue, ich kann nicht senden name von FIRST senden Formular, aber kann sie von zweiten und dritten erhalten.

UPDATE: Ich habe den Fehler gefunden.

habe ich nicht erwähnen, aber meine einreichen Tasten Formen haben eine id = "submit-btn" und JavaScript, die doppelt verhindern einreichen macht all die Mühe:

$("form").one('submit', function() { 
    $('#submit-btn').prop("disabled", true); 
}); 

Und I don‘ Ich verstehe warum, aber das ist eine andere Frage.

+0

warum brauchen Sie zwei Form? – Boby

+0

@Boby - weil er so rollt, hatte ich bis zu 15 Formulare auf einer Seite. Kein Problem. – ArtisticPhoenix

+0

Zuerst würde ich die '-' in den archivierten Namen vermeiden, nur schlechtes mojo davon, Underline ist viel sicherer. Zweitens versuchst du nicht das erste Formular zu bekommen, wenn du das zweite richtig einreichst? Ich benutze nicht das beschissene Vorlagensystem von CI, aber hast du versucht, die andere Form etwas anderes zu nennen. – ArtisticPhoenix

Antwort

0

Fügen Sie eindeutige ausgeblendete Felder für beide Formulare hinzu und überprüfen Sie, ob die Felder in der Methode (hier Post) im Controller benannt sind.

<?php echo form_open("account"); ?> 
// input fields 
<input type="hidden" name="first_form" value="first_form"/> 
<input type="submit" name="change-password" value="Change Password"/> 
</form> 

<?php echo form_open("account"); ?> 
// input fields 
<input type="hidden" name="second_form" value="second_form"/> 
<input type="submit" name="change-email" value="Change Email"/> 
</form> 


if ($_POST['first_form']) 
{ 
    // inside first form 
} 

if ($_POST['second_form']) 
{ 
    // inside second form 
}