Zerod: Javascript und PHP Anfrage mit Parameter

Hallo,

am Anfang will ich nur sagen das ich glaube dieses Thema schon X-mal behandelt wurde aber ich hab zur zeit irgendein Gedankenstau und hab keine Ahnung wo nach ich jetzt suchen soll^^.

ich stelle meine frage mal in einem kleinen Beispiel:

sagen wir mal wir haben 2 Textboxen und einen Button.

jetzt möchte ich das der Benutzer  zahlen in die Textboxen eingibt und dann soll beim klick auf den Button ohne der die Seite neu geladen wird diese beiden zahlen addieren.

so weit ist das ja kein Problem.

aber ich will das die beiden zahlen an eine PHP Datei gesendet werden soll um dort addiert zu werden.

der Inhalt der php-Datei ist ca. so^^:

  
<?php  
$zahl1 = $_POST("zahl1");  
$zahl2 = $_POST("zahl2");  
  
$ausgabe = $zahl1 + $zahl2;  
  
echo $ausgabe;  
?>  

wie muss der Javascript Code aussehen?

mir ist klar das das eigentlich sehr einfach ist und das das irgendwas mit ajax zu tun hat aber ich hab zur Zeit keine Ahnung was ich jetzt suchen soll.

  1. Lieber Zerod,

    aber ich will das die beiden zahlen an eine PHP Datei gesendet werden soll um dort addiert zu werden.

    dann muss Dein JavaScript irgendwie eine PHP-Ressource aufrufen, damit das PHP-Script überhaupt abgearbeitet wird. Dazu ist es zweckmäßig, dem PHP-Script Parameter zu übermitteln.

    der Inhalt der php-Datei ist ca. so^^:

    Warum diese Grinseaugenbrauen?

    $zahl1 = $_POST("zahl1");

    PHP wird Dir sagen, dass es keine Funktion namens $_POST gibt.

    [code lang=php]echo $ausgabe;

      
    Wieso soll Dein PHP-Script etwas ausgeben? Dein JavaScript will doch von ihm garnichts wissen! Oder habe ich da etwas in Deiner Problembeschreibung übersehen?  
      
    
    > wie muss der Javascript Code aussehen?  
      
    Das kommt darauf an, wie Du die PHP-Ressource aufrufen willst.  
      
    
    > mir ist klar das das eigentlich sehr einfach ist  
      
    Das kommt auf den Stand der eigenen Kenntnisse und Fertigkeiten an. Hier ist "einfach" ziemlich relativ.  
      
    
    > und das das irgendwas mit ajax zu tun hat  
      
    Ein XmlHttpRequest (sprich "AJAX") wäre sicherlich eine Möglichkeit von mehreren. Wenn Du die Serverantwort nicht benötigst, dann brauchst Du nicht unbedingt AJAX zu verwenden.  
      
    
    > aber ich hab zur Zeit keine Ahnung was ich jetzt suchen soll.  
      
    Warum machst Du Dich nicht zur generellen Funktionsweise von AJAX schlau? In der Wikipedia steht dazu eine ganze Menge: [AJAX](http://de.wikipedia.org/wiki/AJAX), [XMLHttpRequest](http://de.wikipedia.org/wiki/XMLHttpRequest)  
      
    Nach Deiner Beschreibung zu urteilen wäre es für Dich sicherlich das Einfachste, wenn Du mittels JavaScript ein neues Bild-Objekt erzeugst, ihm eine URL gibst, die einzig und allein den Zweck hat, das besagte PHP-Script anzuschmeissen.  
      
    ~~~javascript
    function server_sagen(a, b) {  
        var i = new Image();  
        i.src = "http://meineseite.example.org"  
            + "/mein_php_script.php"  
            + "?a=" + a  
            + "&b=" + b;  
    }
    

    Da bei der "Bildmethode" die Zahlenwerte im URL-String mitgegeben werden, kannst Du nun nicht mehr $_POST benutzen, sondern musst stattdessen $_GET einsetzen.

    function addiere_a_und_b () {  
        // mit (float) sicherstellen, dass tatsächlich die Zahlenwerte  
        // und keine Strings addiert werden (nennt man [link:http://de.wikipedia.org/wiki/Typumwandlung@title=type casting]):  
        $ergebnis = (float) $_GET['a'] + (float) $_GET['b'];  
      
        tu_was_mit_ergebnis($ergebnis);  
      
        return $ergebnis;  
    }
    

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. moin,

    der Inhalt der php-Datei ist ca. so^^:

    Damit wirst Du nicht weit kommen. Wass Du brauchst, ist eine Kontrollstruktur, die in etwa so aussieht (Pseudocode):

    if(parameter)
      if(submit-Parameter)
        Sende die Seite mit dem Ergebnis
      elsif(ajax-Parameter)
        Sende nur das Ergebnis
      else
        Unbekannter Parameter
    else
     Sende die Seite mit den Eingabefeldern

    wie muss der Javascript Code aussehen?

    Entsprechend der obenstehenden Kontrollstruktur. Im Fall ajax-Parameter baust Du die Response in das DOM ein. Im Fall submit-Parameter schickst Du die komplette Seite mit dem eingebauten Ergebnis. Im Fall keine Parameter schickst Du die Seite mit dem Formular.

    Es macht sich gut, wenn der submit-Fall auch abgedeckt ist, damit alles auch ohne JS funktioniert. Es macht sich noch besser, wenn Du damit beginnst.

    Hotti

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.