Ajax_Frage: Formulare mit Ajax

Hallo, wenn ich ein Formular bereitstelle für den User und es mit Ajax absenden lasse. Da gibt es doch Probleme, dass der User das Formular nicht schicken kann, falls er kein JavaScript benutzt. Andernfalls wäre es mit dem Laden einer PHP Datei möglich, aber dadurch müsste eine komplett neue php-Datei neu geladen werden. Wie wird das am elegantesten gelöst? Lieber mit Ajax abschicken, oder lieber bei form action="neu.php" eine php Datei laden?

  1. servus Ajax_Frage,

    Hallo, wenn ich ein Formular bereitstelle für den User und es mit Ajax absenden lasse. Da gibt es doch Probleme, dass der User das Formular nicht schicken kann, falls er kein JavaScript benutzt. Andernfalls wäre es mit dem Laden einer PHP Datei möglich, aber dadurch müsste eine komplett neue php-Datei neu geladen werden. Wie wird das am elegantesten gelöst? Lieber mit Ajax abschicken, oder lieber bei form action="neu.php" eine php Datei laden?

    wenn Javascript deaktiviert ist, form normal abschicken lassen, ansonsten über das Absenden per Javascript blockieren und über Ajax senden.

    der wurzelbert

    --
    Ist es ein Vogel?
    Ist es ein Flugzeug?
    Nein, es ist Reis, Baby!
    1. Meine nächste Frage ist, wie funktioniert das mit OOP bei PHP.
      Ich habe zum Beispiel eine Klasse mit dem Namen Mensch. Beispiel:

      class Mensch{  
        public $name = "Muster";  
        function zeige_name(){  
            echo $name;  
        }  
      }
      

      Es gibt ja hierbei keine main Methode wie bei Java

      1. Hallo,

        Meine nächste Frage ist, wie funktioniert das mit OOP bei PHP.

        wie meinst Du das? Wie OOP grundsätzlich bei PHP funktioniert? Im Großen und Ganzen wie bei anderen OOP-Sprachen auch. Oder hast Du eine spezielle Frage?

        Ich habe zum Beispiel eine Klasse mit dem Namen Mensch. Beispiel:

        class Mensch{

        public $name = "Muster";
          function zeige_name(){
              echo $name;
          }
        }

          
        Sorry, aber ich verstehe Dein Beispiel nicht. Dein Beispiel ist aber eine Klasse, ja. Wofür steht das Beispiel? Möchtest Du wissen, wie Du die Methode zeige\_name() aufrufen kannst? Dann erzeuge das Objekt mittels [new-Keyword](http://www.php.net/manual/en/language.oop5.basic.php) und rufe die Methode mit Objekt->Methode() auf. Oder möchtest Du was anderes wissen? Und was hat das Beispiel mit Deiner Ausgangsfrage zu tun?  
          
        
        > Es gibt ja hierbei keine main Methode wie bei Java  
          
        In PHP ist der [Konstruktor](http://www.php.net/manual/en/language.oop5.decon.php) (einigermaßen) vergleichbar mit der Main-Methode in Java.  
          
        Erkläre uns bitte, was genau Du wissen Du möchtest, sonst ist es nicht möglich Dir zu helfen. Und wenn Du OOP in PHP erlernen möchtest, kann ich Dir nur empfehlen, erst einmal ein Tutorial zu dem Thema durchzuarbeiten und Dich bei eventuellen Fragen wieder hier zu melden.  
          
        Gruß, Dennis
        
        1. Ich habe zum Beispiel eine Klasse mit dem Namen Mensch. Beispiel:

          class Mensch{

          public $name = "Muster";
            function zeige_name(){
                echo $name;
            }
          }

          
          >   
          > Sorry, aber ich verstehe Dein Beispiel nicht. Dein Beispiel ist aber eine Klasse, ja. Wofür steht das Beispiel? Möchtest Du wissen, wie Du die Methode zeige\_name() aufrufen kannst? Dann erzeuge das Objekt mittels [new-Keyword](http://www.php.net/manual/en/language.oop5.basic.php) und rufe die Methode mit Objekt->Methode() auf. Oder möchtest Du was anderes wissen? Und was hat das Beispiel mit Deiner Ausgangsfrage zu tun?  
          >   
          > > Es gibt ja hierbei keine main Methode wie bei Java  
          >   
          > In PHP ist der [Konstruktor](http://www.php.net/manual/en/language.oop5.decon.php) (einigermaßen) vergleichbar mit der Main-Methode in Java.  
            
          Es geht um folgendes. Wie erreiche ich in HTML den Aufruf der Funktion zeige\_name()? Ajax ist da zwar der Schlüsselwort aber wie genau geht das?  
          Die Funktion in PHp aufzurufen ist ja kein Problem. Ausserdem: Woher weiss PHP, dass er genau die Eine Klasse starten soll? Weil in PHP kann man doch mehrere Klassen in eine PHP Datei schreiben, oder irre ich mich? Das heisst woher weiss PHP, wenn es aufgerufen wird, welche Klasse gestartet werden soll? Irgendwie muss es ja wohl möglich sein, ihm das per HTML mitzuteilen.
          
          1. Hallo,

            Es geht um folgendes. Wie erreiche ich in HTML den Aufruf der Funktion zeige_name()?

            Mittels HTML kannst Du keine PHP-Funktion aufrufen. Du kannst aber ein HTML-Formular an ein PHP-Skript senden.

            Ajax ist da zwar der Schlüsselwort aber wie genau geht das?

            Und Ajax ist da nicht wirklich das Schlüsselwort, das geht wie gesagt auch mit einem normalen HTML-Formular. Vielleicht versuchst Du es erst einmal auf dem "normalen" HTML-Weg. Dann kannst Du Dich später immernoch zum Thema Ajax belesen.

            Die Funktion in PHp aufzurufen ist ja kein Problem.

            Hm... Wenn der Aufruf der Klassen-Methode für Dich kein Problem darstellt, woran scheitert's denn dann? Wie gesagt: Einfach das HTML-Formular an die PHP-Datei senden und dort die Klassen-Methode aufrufen.

            Ausserdem: Woher weiss PHP, dass er genau die Eine Klasse starten soll?

            PHP weiß das nicht - zumindest nicht solange, bis Du PHP sagst, welche Klasse "gestartet" werden soll. Und das machst Du eben, in dem Du das Objekt der Klasse erstellst und anschließend die Methode, die ausgeführt werden soll, aufrufst. Der Aufruf der Methode bereitet Dir ja, wie Du oben geschrieben hast, keine Probleme. Fertig.

            Weil in PHP kann man doch mehrere Klassen in eine PHP Datei schreiben, oder irre ich mich?

            Ja, kann man. Ob das sinnvoll ist steht jedoch auf einem anderen Blatt.

            Irgendwie muss es ja wohl möglich sein, ihm das per HTML mitzuteilen.

            Nein, per HTML funktioniert das nicht, Du benötigst dafür immer eine PHP-seitige Lösung.

            Gruß, Dennis