Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Taget = iFrame (Doch wie bestimmt man das Target bei Forms?)
#1
Ich habe den Shoutbox Form aus dem eigentlichen Template herausgenommen und im Portal und dem Index Template eingefügt.

Darauf gab ich den iFrame den Namen "iframe" und den Aktualisieren Link das Ziel (target) "iframe".

Das klappte bis dahin super... Problem ist nur... wie kann ich den Button und Eingabedialog (also die beiden Forms) verständlich machen das sie nicht die "Shoutbox.php" öffnen sollen, sondern nur beim abschicken den iFrame aktualisieren wenn sie fertig sind?

Code:
<table width="100%" border="0" cellspacing="$theme[borderwidth]" cellpadding="$theme[tablespace]" class="tborder">
<thead>
<tr class="thead">
<td>
<div class="expcolimage"><a href="javascript:expandCollapse('shoutbox');"><img src="$theme[imgdir]/collapse$collapsedimg[shoutbox].gif" id="shoutbox_collapseimg" border="0" alt="[Open/Close]" /></a></div><div><strong>Shoutbox</strong></div>
</td>
</tr>
</thead>
<tbody style="$collapsed[shoutbox_e]" id="shoutbox_e">
<tr><td class="trow1"><iframe src="../forum/shoutbox.php" width="100%" height="250" frameborder="0" name="Shoutbox" marginwidth="0" marginheight="0" align="top" border="0" name="shoutframe"></iframe><br />
<form method="post" action="shoutbox.php">
<input type="hidden" name="action" value="do_add">
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="trow1" align="center">{$lang->shout} <input type="text" name="message" size="40" maxlength="{$mybb->settings['sb_max_length']}"> <input type="submit" name="submit" value="{$lang->add_shout}">
  <span class="smalltext"><a href="shoutbox.php" target="shoutframe"> {$lang->refresh}</a></span>
</td>
</tr>
</table>
</form></td></tr>
</tbody>
</table>

Man sieht ich habe den Refresh Link für meine Shoutbox richtig eingestellt und der funktioniert auch Prima.

Code:
<a href="shoutbox.php" target="shoutframe"> {$lang->refresh}</a>

Doch wie mache ich als Target für die beiden Forms auch den iFrame?
Code:
<form method="post" action="shoutbox.php">
<input type="hidden" name="action" value="do_add">
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="trow1" align="center">{$lang->shout} <input type="text" name="message" size="40" maxlength="{$mybb->settings['sb_max_length']}"> <input type="submit" name="submit" value="{$lang->add_shout}">
  <span class="smalltext">
Zitieren
#2
Vielleicht bringt dich das hier weiter: http://www.tutorials.de/forum/webmaster-...echen.html

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
Leider Nein, dort wird nur erklärt wie man Links mit Java-Script Routinen füllt, damit sie in anderen Frames Form-Elmente ansprechen... wie in dessen Beispiel die Textbox.

Bei meinem Problem/Wunsch ist es anders, ich möchte es genau andersherum. Denn meine Form-Elemente (Textbox & Abschickbutton) befinden sich im Index Template und sollen wenn gedrückt, nur die Shoutbox (die sich im iFrame versteckt) ansprechen oder die gesamte Seite neuladen wenn er es abgeschickt hat. (wäre ne notlösung)
Zitieren
#4
Ohne Javascript wirst du wohl nicht auskommen, allerdings kann ich dir da nicht helfen, da ich von Javascript kaum Ahnung habe.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#5
Naja von Java Script habe ich leider auch nicht wirklich Ahnung *seufzt*

Hoffentlich kennt sich wer hier damit aus... denn könnte ich es wirklich so machen wäre es genial.
Zitieren
#6
Es muss nicht die gesamte Seite neu geladen werden. Ich hab da eine Lösung für dich:

Code:
<script language="JavaScript">
    function refresh_shoutbox() {
        parent.Shoutbox.location.href = "../forum/shoutbox.php";
    }

    function add_shout() {
        document.forms['add_shout'].submit();
                refresh_shoutbox();
    }
</script>

Der Refreshlink (-button) müsste dann so aussehen:
Code:
<input type="submit" onclick="javascript:refresh_shoutbox();" name="submit" value="{$lang->refresh}">
<a href="shoutbox.php" target="Shoutbox" onclick="javascript:refresh_shoutbox();"> {$lang->refresh}</a>

Zum abschicken des Formulars, welches du noch den Namen "add_shout" geben musst
Code:
<input type="submit" onclick="javascript:add_shout();" name="submit" value="{$lang->add_shout}">
<a href="#" onclick="javascript:add_shout();"> {$lang->add_shout}</a>

Der iFrame selber sollte so aussehen:
Code:
<iframe src="../forum/shoutbox.php" width="100%" height="250" frameborder="0" name="Shoutbox" marginwidth="0" marginheight="0" align="top" border="0">Ihr Browser unterstützt keine (i)Frames!</iframe>

Keine Ahnung ob es funktioniert, aber es sollte eigentlich schon klappen Wink
Zitieren
#7
Es geht auch einfacher.
* Sarah schaut beschämt zur Seite.

Wie eine blöde versuchte ich den target Befehl an <input>-Tags anzuwenden. Naja, in wirklichkeit funktioniert target="shoutframe" dafür aber in <form>-Tags.

Ich weiß... das ist peinlich.
Aber vielen Dank für eure Hilfe.
War mein Fehler. *lieb guck*
Zitieren
#8
Boing, typisch Frauen. Nun gut, was soll man den machen? Mir geht es auch oft so das ich Tage später den einfacheren Weg wähle Wink
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Iframe auf die Portalseite Ulrich 4 1.967 16.01.2010, 14:22
Letzter Beitrag: querschlaeger
  Wie setzt man das am besten um Alomaman 2 1.265 09.06.2008, 23:06
Letzter Beitrag: Michael