klickbare links in form und submitten

krabbenmensch

Grünschnabel
hi, also erstmal weis ich nicht ob ich hier oder besser in der php section richtig bin. ich versuchs einfach mal hier.

der code ist wahrscheinlich ziemlich dreckig, aber so lange er funktionert ;)
für verbesserungsvorschläge bin ich natürlich immer offen.

also ich bekomme per php eine gefüllte tabelle mit variabler länge zurück. der text der ersten spalte soll jetzt jeweils ein link sein bei dessen betätigung der text eben dieses links in eine form auf der gleichn seite geschrieben wird und diese dann submitted wird.

so sieht das aus:


PHP:
while ($bla = blubb)
{
echo "<tr><td>"; 
echo "<a href='#' onclick='syslink();javascript:document.forms[0].submit()'>";
echo $foo['bar'];
echo "</a></td>";
echo "<td>
.
.
.
}

so und in der syslink() steht
Code:
document.forms['fngb'].system.value = '$DAS-SOLL-IN-DIE-FORM'; return false;

also praktisch brauch ich eigntlich nur noch
Code:
$DAS-SOLL-IN-DIE-FORM = $foo['bar']
nur das eine ist halt php und das andere js und von letzterem hab ich eigntlich überhaupt keine ahnung

hoffentlich hab ich mich halbwegs klar und verständlich ausgedrückt und mir kann jemand helfen ;)
 
Ja ich würde der Funktion syslink() eben den Link übergeben:
Javascript:
function syslink(link)
{
  document.forms["fngb"].system.value = link;
}
Und beim Link dann:
PHP:
echo "<a href='#' onclick='syslink(".$foo['bar']."); document.forms[0].submit(); return false;'>";
# ...
 
Ja, sorry da fehlten die Anführungsstriche.
(Im momentanen Zustand wird "Mathi" als Variable gedeutet)

Also folgendes müsste funktionieren:
PHP:
echo "<a href='#' onclick='syslink(\"".$foo['bar']."\"); document.forms[0].submit(); return false;'>";
 
Super, danke, funktioniert einwandfrei!

wärst du vielleicht noch so nett und würdest mir diesen part

Code:
(\"".$foo['bar']."\")

entschlüsseln? Damit ich auch halbwegs versteh was ich da tue :)
 
Ja, klar.

Zuerst kommt ganz normal die Klammer für die Funktion.
\" bedeutet nichts anderes als ein normales ", nur weil du dein echo auch damit begonnen hast, darfst du das da drinnen nicht verwenden und musst ihn mit \ "escapen". Sonst denkt PHP, der String wäre zu Ende.

Dann kommt erneut ein ", dieser beendet nun aber den String.

Mit dem . (Punkt) kann man zwei Strings aneinander reihen. In unserem Fall verwenden wir die Variable $foo['bar'].
Dann erneut der Punkt, denn jetzt reihen wir wieder an den String was an.

\" bedeutet wie eben auch ein ".
Und schließlich eine normale Klammer ).

Code:
Teil             || Str1  | Str2        | Str3
------------------------------------------------
Inhalt           || (\"   | $foo['bar'] | \")
Interpretiert zu || ("    | Mathi       | ")
 
Zuletzt bearbeitet:
Zurück