PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : onclick:JavaScript funzt ned immer



Torsten.E
01-05-2004, 17:36
Ich habe folgenden Link auf meiner Seite



<a href="session.php" onClick="JavaScript:document.forms.formularname.SET_SVToDoC .value=1;document.forms.formularname.submit();">Ok</a>


D.h. Bei einem Klick auf den Link, bekommt das Formularfeld einen Wert zugewiesen und danach wird das Formular "abgeschickt".

In der session.php frage ich dann mit $_POST und $_GET die Variable "SET_SVToDoC" ab. Und machmal ist sie einfach leer.

Hat da jemand einen Idee

Torsten.E

Pingu
01-05-2004, 18:00
Was soll denn ausgeführt werden: "href" oder "onclick"?
Das wird der Browser wohl auch nicht wissen. Also immer nur eines von beiden. Was beim submit() des Formulars zu tun ist, steht schon der "action" des Formulars.

Pingu

Torsten.E
01-05-2004, 18:02
Der Links ist ausserhalb von <form>...</form>

Bei onclick soll ein Formularfeld welches mit hidden definiert ist, zuerst einen Wert bekommen und danach soll das Formular welches natürlich action=programm.php method=post hat abgeschickt werden.

Ein href="#" habe ich deshalb drinn, damit der Link überhaupt angezeigt wird. Oder wie geht das sonst ?

Torsten.E

Pingu
01-05-2004, 19:02
Original geschrieben von Torsten.E
Ein href="#" habe ich deshalb drinn, damit der Link überhaupt angezeigt wird. Oder wie geht das sonst ?
Oben steht aber etwas anderes:

Original geschrieben von Torsten.E
<a href="session.php" onClick="java script:document.forms.formularname.SET_SVToDoC.val ue=1;document.forms.formularname.submit();">Ok</a>

Ansonsten kann ich nur sagen, daß ich manchmal (warum weiß nicht) auch das Problem hatte, daß wenn zwei funktionen innerhalb einer Anweisung standen, es nicht ricchtig ausgeführt wurde. Übringens muß immer eine Antwort also "true" oder "false" zurück gegeben werden, wenn ich mich nicht irre.

Eine Lösung des ganzen wäre es, eine Funktion zu definieren. Die Funktion führt alle Sachen aus wie gewünscht und in der Methode onclick wird dann nur die Funktion aufgerufen. AFAIK, machen das die meisten Websites auch so.

Pingu

bischi
01-05-2004, 22:19
Was soll denn ausgeführt werden: "href" oder "onclick"?

Soweit ich das sehe, beides... (ist glaub ich unabhängig voneinander...)

Und: Ich hab (wie die meisten vernünftigen Leute auch) Java-Scipt eh ausgeschaltet :D . Mozilla (und Netscape, ...) haben mit Java-Script eh so ihre Problemchen...

MfG Bischi

Torsten.E
02-05-2004, 10:16
Das mit der onclick Funktion ist kein Problem. Nur wie schaut ein Link auf so eine Funktion dann aus

<a href=??? onclick="formularsenden()">Senden</a>

Die formularsenden() Funktion enthält den submit für das Formular.
Nur wir muß dann der Link zu dieser Funktion aufgebaut sein, ohne
dass der Browser wieder 2 Dinge hat, die er ausführen will.

undefined
02-05-2004, 12:38
<?php
if ( isset($_POST['meinWert']) && $_POST['meinWert'] != "" )
echo $_POST['meinWert'];

?>

<script language="javascript">
// <!--
function post_my_form(obf)
{
MyForm = document.getElementById('meinForm');
if (obf == 'send') {
MyForm.submit();
}
}
// -->
</script>


<?php
echo '
<form action="' . $_SERVER['PHP_SELF'] . '" id="meinForm" name="meinForm" method="post"">
<input type="text" name="meinWert" value="Mein Post Text" length="80" />
</form>';
?>
<br />
<a href="javascript:post_my_form('send');">Sende ein Post mit einem Get an mein Formular</a>
Der event Handler sollte immer auf die ID des Formulares stehen.
Das Object->"forms" zu verwenden ist nicht gerade sinnvoll weil es auf alle Formulare zutrifft auch die "die sich noch im Browser Cache befinden"

panzi
02-05-2004, 12:43
<a href="session.php" onClick="java script:document.forms.formularname.SET_SVToDoC.val ue=1;document.forms.formularname.submit();">Ok</a>

Alles rote ist (z.T. teilweise -> xhtml) nicht korrekt.
Richtig ist's so:

<a href="session.php" onclick="document.forms.formularname.SET_SVToDoC.value=1;do cument.forms.formularname.submit();">Ok</a>

Besser/einduetiger ist vieleicht das:

<a href="java-script:document.forms.formularname.SET_SVToDoC.val ue=1;document.forms.formularname.submit();">Ok</a>

Torsten.E
02-05-2004, 15:26
Danke, hab ein Script aufgerufen und damit funktioniert
es jetzt auf jeden Fall

Torsten.E