2016-03-31 20 views
0

Ich habe ein Formular innerhalb eines iframe in meinem CodeIgniter Anwendung die POST-Daten aus einem Formular erhalten:Wie innerhalb eines iframe

<div class="settings"><h2>Einstellungen</h2> 
    <div class="main-content"> 
    <iframe src="" name="main-content"> 
     <form id="new-role-form" method="post" action="<?php echo base_url('index.php/home/settings') ?>"> 
     <input class="role-input" type="text" placeholder="Rolle" name="role"><input class="role-input" type="password" placeholder="Passwort" name="password"><button class="button role-submit" type="submit"><span class="glyphicon glyphicon-plus"></span></button> 
     </form> 
    </iframe> 
    </div> 
</div> 

Bei dem Absenden dieses Formulars den folgenden Code sollte (der einreichen ausgeführt werden soll, Arbeits ich es getestet, ich die Eingänge der Form hier bekommen):

$(document).on('submit', '#new-role-form', function(event) { 
      var form = $(this); 
      var name = $('input[name="role"]', form).val(); 
      var password = $('input[name="password"]', form).val(); 
      $.ajax({ 
       url: '<?php echo base_url('index.php/ajax/insertRole'); ?>', 
       type: 'POST', 
       data: {name: name, password: password}, 
       success: function() { 
        alert("success"); 
       } 
      }); 
      event.preventDefault(); 
     }); 

Und das ist die insertRole Funktion meiner ajax-Controller:

public function insertRole() { 
     $this->Database->insert($this->input->post('name'), $this->input->post('password')); 
    } 

Hier wird der Fehler angezeigt: ...index.php/ajax/insertRole 500 (Internal Server Error)

Wie kann ich die POST-Daten aus einem Formular in einem Iframe abrufen?

Antwort

0

Wenn Sie Probleme haben das ‚Senden‘ Ereignis fangen könnten Sie verwenden:

<script type="text/javascript"> 
    $('#frame').load(function() { 
     $(this).contents().find('form').submit(function() { 
      //do your stuff here 
     }); 
    }); 
</script> 

Um zu ‚warten‘ für die iframe geladen und dann das Ereignis vorlegen zu fangen. Sie können auch eine Funktion in der Hauptdatei erstellen:

function valueFromIframe(val) { 
    alert(val) 
} 

Und aus dem iframe nennen:

<script type="text/javascript"> 
parent.valueFromIframe("Hello world"); 
</script> 

Hope it

+0

Dies ist nicht einmal beantwortet meine Frage hilft. Meine Submission-Veranstaltung ist völlig in Ordnung. – Tywele

+0

Der Name der Frage: "Wie Sie die POST-Daten von einem Formular innerhalb eines Iframes erhalten" und Ihre letzte Frage: "Wie kann ich die POST-Daten von einem Formular in einem Iframe abrufen?" macht mich denken, dass Sie nicht in der Lage sind, die $ _POST von Ihrem iframe zu bekommen ... Wenn Sie einen 500 Server Fehler haben, versuchen Sie die $ _POST innerhalb der 'insertRole()' zu echo (um zu beweisen, dass die Informationen wirklich sind dort) und überprüfe, dass '$ this-> Database' definiert ist. Normalerweise versuche ich zwischen einfachen und doppelten Anführungszeichen zu unterscheiden um Probleme zu vermeiden (ich meine in: '" "') –

+0

Nach ein paar Tests scheint es wie meine einziger Fehler war eine ungültige SQL-Abfrage, aber danke für die Hilfe :) – Tywele

Verwandte Themen