Div inhalt Via Klick oder Funktion neuladen

ciberjoerg

Erfahrenes Mitglied
Hallo alle zusammen. Ich hab eben eine sicher einfache Frage.

Wie kann ich aus einem Iframe aus, auf der Parent Seite, also die in der der iFrame sitzt, einen Div Inhalt neu laden. Und oder via klick auf der eigentlichen Seite?

Verwendung: Erstellen eines Kommentars oder Post auf einer Seite. Oder Aktualisierung nach einem Upload eines Bildes in einer Bildergalerie.

Was muss ich tun bzw hat Jemand ein gutes Beispiel / Codeschnipsel für solch eine funktion mit JQuery?
 
Eigentlich ziemlich einfach.

Javascript:
$('input[type=button]').click(function() {
	$('div:first', window.parent.document).html('neu');
});

Ändert beispielhaft den Inhalt des ersten div.

Zu beachten ist aber, dass beide Dokumente zur gleichen URL gehören müssen.
 
Wenn ich einen bestimmten Inhalt ändern will muss ich anstatt div:first einfach #mein div eingeben?
und in .html('neu'); Beispielsweise .html('inhalt.php');?

und wenn ich das automatisch machen will beispiel nach einem eintrag in die Datenbank, dann einfach nur function() {
$('#mein_div', window.parent.document).html('inhalt.php');
}
 
Wenn ich einen bestimmten Inhalt ändern will muss ich anstatt div:first einfach #mein div eingeben?
und in .html('neu'); Beispielsweise .html('inhalt.php');?

und wenn ich das automatisch machen will beispiel nach einem eintrag in die Datenbank, dann einfach nur function() {
$('#mein_div', window.parent.document).html('inhalt.php');
}

Ja, sofern du in "#mein_div" den String "inhalt.php" stehen haben willst. Willst du aber innerhalb des Div eine andere Seite laden, brauchst du dazu etwa die Funktion ".load()" http://api.jquery.com/load/ .
 
Ach so okay dann ist klar. Doch ich habs gerade versucht zwar wie ich oben angegeben hab mit html, aber da passierte nichts. Der div den ich ändern möchte heist pics. aktuell hab ich das so:
PHP:
<script type="text/javascript">

function() {
    $('#pics', window.parent.document).load('temps/showpic.php');
}
</script>
 
Die Funktion hat keinen Namen. Du musst sie auch aufrufen.

Javascript:
<script type="text/javascript">
(function() {
    $('#pics', window.parent.document).load('temps/showpic.php');
})();
</script>

oder

Javascript:
<script type="text/javascript">
function foo() {
    $('#pics', window.parent.document).load('temps/showpic.php');
}

foo();
</script>
 
Okay letzte frage wie kann ich dann Variablen von php an die funktion übergeben? bsp.
temps/showpic.php?user_id=$user_id&gal_id=$gal_id
 
Deine Frage ist nicht ganz klar. Willst du JavaScript Variablen an die PHP Seite weitergeben, oder soll die Antwort der PHP Seite JavaScript Variablen enthalten?

Für ersteres kannst du der "load"-Funktion ein Objekt mit Daten übergeben, die an die URL angehängt werden.

Javascript:
function foo(uid, gid) {
    $('#pics', window.parent.document).load('temps/showpic.php', {user_id: uid, gal_id: gid});
}

foo(1234, 1337);

Falls das deine Frage nicht beantwortet, musst du spezifischer werden.
 
Wunderbar funktioniert. Nur leider bekomme ich das nicht hin auf der Seite in der der div ist.
Ist wahrscheinlich nur eine Kleinlichkeit.
 
Zurück