Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [HTML / PHP] Mit PHP Funktion auf OnChange reagieren (https://www.delphipraxis.net/70511-%5Bhtml-php%5D-mit-php-funktion-auf-onchange-reagieren.html)

Luckie 31. Mai 2006 11:39


[HTML / PHP] Mit PHP Funktion auf OnChange reagieren
 
Kann man mit einer PHP Funktion auf das OnChange-Ereigniss einer Combobox in einem HTML Formular reagieren oder geht das nur mit JavaScript?

Ich dachte es mir so:

Code:
<html>
<body>
  <?php  

    function getitems($kategorie)
    {
      echo $kategorie;
    }

  ?>

  <form ENCTYPE="multipart/form-data">
    <select NAME="Kategorie" onChange=getitems(this.options[this.selectedIndex].value)>
    <option></option>
    <?php
      $dokument = domxml_open_file("Links.xml");
      $meine_elemente = $dokument->get_elements_by_tagname("kategorie");
      foreach ($meine_elemente as $knoten)
      {
        echo "<option>".$knoten->get_attribute("value")."</option>";
      }
    ?>
  </form>

 





  <form ENCTYPE="multipart/form-data">
    <select NAME="Item">
    <option></option>
    <?php
      foreach ($getitems("Programmierung") as $knoten)
      {
        echo "<option>".$knoten->get_attribute("value")."</option>";
      }
    ?>
  </form>

</body>
</html>
Letztendlich will ich meine Links.xml Datei online berabeiten können. Dazu wählt man eine Kategorie aus, dann erscheinen in der zweiten Combobox die Unterkategorien und dann kann man in Eingabefelder, den Link, den Linktext und eine Beschreibung abgeben und wenn man dann auf Speichern klickt wird der neue Link in das XML Dokument eingetragen.

Wenn es dann gehen sollte, werden sich noch ein paar weiter problem ergeben, aber dazu später.

S2B 31. Mai 2006 11:49

Re: [HTML / PHP] Mit PHP Funktion auf OnChange reagieren
 
Nein, das geht nicht, die Event-Handler sind nur für client-basierte Sprachen da.

Wenn du mit PHP auf Inhalte aus Formularen eingehen willst, muss das Formular vorher abgesendet werden (oder du verwendest AJAX :wink:). Das Ganze funktioniert dann z.B. so:
Code:
<?php

if (isset($_POST['submit']))
{
  echo htmlspecialchars($_POST['text']);
}

?>

<form action="deineDatei.php" method="post">
  <input type="text" name="text" value="" />
  <input type="submit" name="submit" value="Absenden" />
</form>
Edit: Um deinem Beispiel etwas näher zu kommen: Das Formular kannst du bei einer Änderung des Wertes der Combobox abschicken:
Code:
<select name="item" onchange="submit()">

yankee 1. Jun 2006 22:37

Re: [HTML / PHP] Mit PHP Funktion auf OnChange reagieren
 
Der Browser weiss ja von php nichts...
php ist ja nur ein praeprozessor, der html ausgibt und den fertig geparsten qt an den Browser sendet.

Allerdings kannst du das ganze mit JavaScript und ein kleines bicchen Hilfe von php loesen, wenn du AJAX benutzt...

Luckie 1. Jun 2006 23:48

Re: [HTML / PHP] Mit PHP Funktion auf OnChange reagieren
 
Stimmt. Hm, mal sehen. JavaScript ist nicht unbedingt so mein Ding. :?

yankee 1. Jun 2006 23:52

Re: [HTML / PHP] Mit PHP Funktion auf OnChange reagieren
 
Zitat:

Zitat von Luckie
Stimmt. Hm, mal sehen. JavaScript ist nicht unbedingt so mein Ding. :?

:-D. Wieso das denn...? JavaScript ist doch hammer genial :-).
Nagut, in manchen Sitauationen macht php (oder was "richtiges" wie Delphi oder echtes Java) einfach mehr Spass, aber so normalerweise finde ich JS Klasse :-)).

formosa 2. Jun 2006 03:43

Re: [HTML / PHP] Mit PHP Funktion auf OnChange reagieren
 
Wäre es nicht einfacher mit Javascript nur auf die Änderungen zu reagieren und den Rest mit PHP zu machen?

Code:
  <select NAME="Kategorie" onChange="submit()">

yankee 2. Jun 2006 04:24

Re: [HTML / PHP] Mit PHP Funktion auf OnChange reagieren
 
Zitat:

Zitat von formosa
Wäre es nicht einfacher mit Javascript nur auf die Änderungen zu reagieren und den Rest mit PHP zu machen?

Noe, AJAX ist naemlich viel schneller...
Du musst da schliesslich nur die Daten uebtragen und nicht noch Bilder, Layout usw. usw.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz