Hilfe - Javascript geht auf meinem Rechner nicht.

megachucky

Grünschnabel
Beginne gerade mit einem AJAX Buch (Head First), aber irgendwie wollen bei mir die Beispiele nicht laufen (Html + Javascript). Wenn ich sie uploade auf meine Homepage gehen sie

Zb. müsste bei folgendem Code laut Buch ein Fehler kommen, weil ich Firefox nutze und request null sein müsste. Kommt aber kein Fehler.

Aber dies nur als ein Beispiel, auch die anderen Sachen gehen nicht.

Muss ich bei meinem Rechner noch irgendwas bestimmtes einstellen, damit Javascript, HTML und Php zusammenarbeitet? Im Buch ist leider nicht erwähnt!?
Nur immer: Achten sie darauf, dass alle Dateien im gleichen Verzeichnis liegen, und das ist bei mir der Fall. Selbst die Originalbeispiele der beigelegten CD gehen nicht! Nur wenn ich sie ins www uploade...


Bitte dringend um Hilfe... Danke.

Code:
<html> 
 <head>
  <title>Break Neck Pizza Delivery</title>
  <link rel="stylesheet" type="text/css" 
        href="breakneck.css" media="screen" />
        
    <script language="javascript" type="text/javascript">
    
       var request = null;

    function createRequest {
       try {
         //request = new XMLHttpRequest();
       } catch (trymicrosoft) {
         try {
           request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (othermicrosoft) {
           try {
             request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (failed) {
             request = null;
           }
         }
       }
     
    

       if (request == null)
         alert("Error creating request object!");
    }
    
    
    
    function getCustomerInfo() {
        
        var phone = document.getElementById("phone").value;
        createRequest();
        var url = "lookupCustomer.php?phone=" + escape(phone);
        
        request.open("GET", url, true);
        request.onreadystatechange = updatePage;
        request.send(null);
        

    }
    
    </script>    
    
 </head>

 <body onLoad="document.forms[0].reset();">
  <p><img src="breakneck-logo.gif" alt="Break Neck Pizza" /></p>
  <form method="POST" action="placeOrder.php">
   
   <p>Enter your phone number:
    <input type="text" size="14" name="phone" onChange="="getCustomerInfo();" />
   </p>
   
   
   <p>Your order will be delivered to:</p>
   <p><textarea name="address" rows="4" cols="50 id="address" ></textarea></p>
   
   
   <p>Type your order in here:</p>
   <p><textarea name="order" rows="6" cols="50" id="order" ></textarea></p>
   
   <p><input type="submit" value="Order Pizza" id="submit" /></p>
  </form>
 </body>
</html>
 
Bist du sicher, dass du zuhaus einen Webserver installiert hast, gestartet, und die Dateien auch auf diesem aufgerufen hast.... deine Adresszeile im Browser müsste in diesem Fall mit

http://localhost/
bzw.
http://127.0.0.1
..beginnen.

Sowohl die Verwendung von PHP, als auch von XMLHttpRequest, setzen einen Webserver vorraus(wobei sich bei letzterem lediglich die angefragte Datei, also lookupCustomer.php auf einem Webserver befinden muss)
 
Also irgendwas hat nicht gepasst. Hab jetzt nochmal XAMPP installiert und bei Status ist dort nun alles auf grün, incl. php und mysql.

Die obige Fehlermeldung kommt nun, das passt.

Allerdings scheint mit php irgendetwas noch nicht zu gehen: Wenn ich bei folgendem Beispiel (Lösung aus dem Buch) auf placeOrder klicke müsste ja eigentlich placeOrder.php aufgerufen werden. Dies passiert auch. Dort steht allerdings nur:

Your order will be delivered to:



We have your order down as:






Die Variablen werden also nicht angezeigt. Ist da ein Fehler im php skript?



Danke für die Hilfe.




Code:
<html> 
 <head>
  <title>Break Neck Pizza Delivery</title>
  <link rel="stylesheet" type="text/css" 
        href="breakneck.css" media="screen" />
  <script language="javascript" type="text/javascript">
   var request = null;

   try {
     request = new XMLHttpRequest();
   } catch (trymicrosoft) {
     try {
       request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (othermicrosoft) {
       try {
         request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (failed) {
         request = null;
       }
     }
   }

   if (request == null)
     alert("Error creating request object!");

   function getCustomerInfo() {
     var phone = document.getElementById("phone").value;
     var url = "lookupCustomer.php?phone=" +
               escape(phone);
     request.open("GET", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
   }

   function updatePage() {
     if (request.readyState == 4) {
       /* Get the response from the server */
       var customerAddress = request.responseText;

       /* Update the HTML web form */
       document.getElementById("address").value =
         customerAddress;
     }
   }
  </script>
 </head>

 <body onLoad="document.forms[0].reset();">
  <p><img src="breakneck-logo.gif" alt="Break Neck Pizza" /></p>
  <form method="POST" action="placeOrder.php">
   <p>Enter your phone number:
    <input type="text" size="14" 
           name="phone" id="phone" onChange="getCustomerInfo();" />
   </p>
   <p>Type your order in here:</p>
   <p><textarea name="order" id="order"
                rows="6" cols="50"></textarea></p>
   <p>Your order will be delivered to:</p>
   <p><textarea name="address" id="address"
                rows="4" cols="50"></textarea></p>
   <p><input type="submit" id="submit"
             value="Order Pizza" /></p>
  </form>
 </body>
</html>

PHP:
<?php

?>

<html>
 <head>
  <title>Break Neck Pizza Delivery</title>
  <link rel="stylesheet" type="text/css" href="breakneck.css" />
 </head>


 <body>
  <p>
   <img src="breakneck-logo.gif" alt="Break Neck Pizza" />
  </p>
   <p>Your order will be delivered to:</p>
   <p class="customer-data">
<?php
   print str_replace("\n", "<br />", $address);
?>
   </p>
   <p>We have your order down as:</p>
   <p class="customer-data">
<?php
   print str_replace("\n", "<br />", $order);
?>
   </p>
 </body>
</html>
 
Hm, da hast du recht. Werd das nochmal überprüfen. Schade, dass dieses Buch anscheinend ein paar Fehler hat, ansonsten finde ich die HEAD FIRST Reihe wirklich super zum lernen.
 
Hi,

vielleicht musst Du mit $_POST auf die übertragenen Variablen zugreifen, z.B.
Code:
<?php
   print str_replace("\n", "<br />", $_POST['address']);
?>
Ciao
Quaese
 
Ich würd eher sagen, da fehlt ein Query, welches in einer Datenbank nachschaut, ob $_GET['phone'] vorhanden ist und die dazugehörige Adresse ermittelt.
 
Hmm

@Sven
Da es Formularelemente mit Namen adress und order gibt, bin ich davon ausgegangen, dass es sich
beim zweiten HTML-Dokument mit PHP-Code um das Script handelt, welches aufgerufen wird, nachdem das
Formular versandt wurde (placeOrder.php). Dass die Felder vorher korrekt ausgefüllt wurden, habe ich vorausgesetzt.

Ciao
Quaese
 
Da haste auch wieder recht :-(

Ich bin davon ausgegangen, dass es sich um den Teil handelt mit der AJAX-Sache...die Fragestellung bezog sich ja u.a. auf Javascript.
Aber ich schätze mal, der Fehler ist dort identisch...statt $_GET['phone'] zu ermitteln, wird dort bestimmt $phone angesprochen.
 

Neue Beiträge

Zurück