kati: Radio OnClick mit Javascript innerhalb eines PHP-Formulars

Beitrag lesen

hallo,

wieso machst du es nicht mit Javascript, php hat keine Ahnung über Formulare und html-Elemente - wie du schon sagtest. Also mit Javascript könntest du es so machen, dass du einfach beim Klick-Event eine Methode aufruft die das Objekt anhand der Id oder des Namen identifizieren kann und die Benötigte Eigenschaft kann schon gesetzt werden. Wenn du es mit php machen möchtest, dann musstest du die Daten (also Schlüssel-Wert-Paare) an die URL anhängen und danach mit _GET auslesen, oder wenn die sich auf einer Form befinden dann mit _POST nachdem das Formular abgeschickt wurde. Wenn das etwas beim Anklicken des Optionsbuttons tun soll, dann solltest du javascript nehmen, meiner meinung nach... Oder du könntest die Daten, die vom Server geschickt werden (also mit php verarbeitet werden) nehmen und als Parameter an eine javascriptFunktion übergeben. Das würde dann so ausschauen:

//ist nur ein Beispiel !

<script language= "JavaScript" type="text/javascript">
//damit hatte ich Probleme, weil das status_fenster nicht gefunden wurde
function status_zeigen(status) {
   var position = null;
   //testen, ob es gibt
   if (document.getElementsByName("status_fenster") == null)  return;
   position = document.getElementsByName("status_fenster")[0].length;
   var status_Zeile = document.createElement("option");
   status_Zeile.text = status;
   document.getElementsByName("status_fenster")[0].add(status_Zeile, position+1);
}
</script>

<?php

$status = "";

$conn = new Connection('localhost', $_POST['kennung'], $_POST ['password']);
if($conn->get_verbindung() == 0) {
   $status = "Verbindung konnte nicht hergestellt werden.";
} else {
   $status = "Verbindung wurde erfolgreicht hergestellt.";
}

//javascript, das in php integriert ist

function status_zeigen($st) {
 echo "<script language="JavaScript">\n";
 echo "status_zeigen('$st');\n";
 echo "</script>";
}
status_zeigen($status);
?>

cu kati

Hallo Freunde,
habe ein Problem, daß mir schon den ganzen Tag Kopfschmerzen bereitet. Habe ein Formular mit Eingabefeldern und radio-buttons. Das Problem ist, daß sobald ein Radio angeclickt wird, soll die Seite erneut geladen werden, weil dadurch noch optionale Felder sichtbar werden sollen.
So wie es aussieht geht das nur mit Javascript, ich kriegs leider nicht hin. Das Problem ist ja daß PHP Serverseitig verarbeitet wird, Javascript Clientseitig. Wie kriege ich Javascript dazu das Formular an den Server zur weiteren Verarbeitung zu schicken. Hab schon einiges probiert, aber nichts will funktionieren.

<?
if (!isset($_POST['radio'])) $_POST['radio'] = 0;
if( isset( $_POST['submit']))
{

tu was!!!!!!

}

?>

<html>
<body>
<form name="eingabe" action="<? echo $_SERVER['PHP_SELF'] ?>" method="post" >
<tr>
<td>feld1: </td>
<td><input type="text" name="feld1" size="20" value="<? echo $_POST['feld1'] ?>"> </td>
</tr>
<tr>
<td>Typ: </td>
<td><input type="radio" name="radio" value="0" <? if ($_POST['radio'] == 0) echo "checked" ?>">Wert1  <input type="radio" name="radio" <? if ($_POST['radio'] == 1)echo "checked" ?> value="1">Wert2 </td>
</tr>
<?
if($_POST['radio'] == 1)
{
echo "<tr><td>feld2: </td>";
echo "<td><input type='text' name='feld2' size='20' value='".$_POST['feld2']."' > </td></tr>";
}
?>
</table>
<input type="submit" name="submit" value="senden">

</form>
</body>
</html>

So, wenn ich das 2 Radio anclicke und dann unten mit submit das Formular erneut lade, bleibt das 2 Radio "checked", und das optionale Feld erscheint.
Das ist aber nicht der Sinn und Zweck der Übung, da das anclicken eines Radios als Event abgefangen werden soll, das Formular neu geladen werden soll, und die bereits vorhandenen Daten erhalten bleiben sollen.
Nach langem Suchen, bin ich auf Javascript gestoßen, nämlich in etwa so:
<input .......... onClick="window.location.reload()">

was allerdings bewirkt, daß die Variablen verloren sind,
in einem Forum habe ich was gefunden, das auch funktionieren soll, nämlich:
<input .......... onClick="document.eingabe.Submit()">

das funktioniert nicht, kriege einen Js-Fehler, nämlich daß das Objekt die Aktion/Methode nicht unterstützt.

<input .......... onClick="history.go(0)">,
etc.

Weiß jemand von Euch eine Lösung?

Wäre für jede Hilfe dankbar.

Gruß

Gaucho