|
Autor |
Nachricht |
Puge Henis
|
Titel: AJAX-Programmierung, die Erste
Verfasst am: Sa, 14 Apr 2007, 17:17 |
|
|
AJAX-Programmierung, die Erste
Asynchrones Javascript im Online-Shop
IST: Mit PHP werden aus einer mySQL-Datenbank alle Produkte nach Kategorie ausgelesen und in der Shop-Liste angezeigt. Es wird zuerst der Grundpreis angezeigt und 2 Select-Menues mit je nach Datensatz unterschiedlichen Papiergrössen (1) und Papiersorten (2). Siehe hier
SOLL: Nun soll dynamisch der End-Preis ermittelt werden, ohne dass die Seite jedoch neu lädt. Diese Daten (Papiergrösse und -sorte, End-Preis) sollen dann nach Klick auf das Warenkorb-Icon in den Bestellkorb gelegt werden (Shop-Funktion besteht bereits, ist in Javascript realisiert, siehe hier)
Eine Lösung, die man normalerweise nur in Flash programmieren könnte, sie wäre mit normalem HTML so nicht realisierbar. Wäre alles kein Problem, wenn nur ein fester Preis bestünde... Doch der Shop soll ja dynamisch sein... Hab also im Internet lange gesucht und bin auf folgendes gestossen:
AJAX (Asynchrones Javascript): Nur Teilbereiche einer Website werden neu geladen und die erforderlichen Werte (ohne die Seite neu zu laden) vom Server geholt.
Und hier ist der erste Versuch, testweise Daten aus einem Selectmenue (1) in ein nächstes, von 1 abhängiges Selectmenue (2) zu übertragen:
Beispiel: http://face-design.biz/demo/ajax/ajax.htm
ajax.js
Code: |
function processData( xmlHttp, intID )
{
// process text data
updateMenu( xmlHttp.responseText );
}
function updateMenu(str)
{
//Selectbox mit Namen wuensche2 leeren
document.test.wuensche2.length = 0;
//Antwort vom Server ist eine Kommagetrente Liste
//Daraus ein Array machen und in elems speichern
var elems = str.split(",");
//Aus jedem Element des Arrays eine neue Option machen und an die Box anf?gen
for (var i = 0;i < elems.length; i++)
{
neu = new Option(elems[i],elems[i],false,false);
document.test.wuensche2.options[document.test.wuensche2.length] = neu;
}
//Neue Select-Box sichtbar machen
document.getElementById("select2").style.display="block";
}
// globales XMLHttpRequest-Objekt erzeugen
var xmlHttp = getXMLRequester();
//Request aufrufen
function fillSelect2()
{
strSource = "ajax.php";
strData = "wunsch=" + document.test.wuensche1.value;
intType= 0; //GET
intID = 1;
sendRequest(strSource,strData,intType,intID);
} |
ajax.php
Code: |
$return = array();
$return["kinder"] = array("Elias","Sophia","Felix","Ronja","Lilly","Leander");
$return["autos"] = array("VW","Porsche","Mercedes","Audi");
$return["technik"] = array("Handy","Kamera","Server","Laptop","PDA");
echo implode(",",$return[$_GET["wunsch"]]); |
Im nächsten Schritt werden nun alle Select-Menues mit IDs indiziert, um dann per AJAX angesprochen werden zu können. Die Funktion UpdateMenu() wird nun für das Eingabefeld "Preis" umgeschrieben und der Preis je nach gewählten Werten neu berechnet.
(...) to be continued...
Zuletzt bearbeitet von Puge Henis am Do, 26 Apr 2007, 05:27, insgesamt einmal bearbeitet. (1 Prozent)
|
|
Nach oben |
|
Puge Henis
|
Titel: (Kein Titel)
Verfasst am: Sa, 14 Apr 2007, 21:43 |
|
|
Toll. das AJAX-Beispiel funzt nur in Firefox
Boris, hast Du nicht zufällig Plan von der Materie?
|
|
Nach oben |
|
boris
Beiträge: 11194
|
Titel: (Kein Titel)
Verfasst am: Sa, 14 Apr 2007, 21:45 |
|
|
Randgruppe™ @ Sa, 14 Apr 2007, 21:43 gab folgendes von sich: |
Boris, hast Du nicht zufällig Plan von der Materie? |
Ein bißchen - da ich AJAX aber mit .NET programmiere und dabei browserspezifischer Code automatisch (!!) erzeugt wird, kann ich dir da jetzt aus dem Stehgreif nicht so wirklich weiterhelfen.
____________ beehave - home of humbug ... [we can't afford to be neutral]
|
|
Nach oben |
|
Puge Henis
|
Titel: (Kein Titel)
Verfasst am: So, 15 Apr 2007, 04:36 |
|
|
hab's dann doch irgendwie geschafft (naja, fast), mit herkömmlichem Javascript.
PS: Schreibst Du eigentlich Pflichtenhefte oder sowas?
Zuletzt bearbeitet von Puge Henis am Do, 26 Apr 2007, 05:15, insgesamt einmal bearbeitet. (1 Prozent)
|
|
Nach oben |
|
boris
Beiträge: 11194
|
Titel: (Kein Titel)
Verfasst am: Mo, 16 Apr 2007, 12:12 |
|
|
Randgruppe™ @ So, 15 Apr 2007, 04:36 gab folgendes von sich: |
PS: Schreibst Du eigentlich Pflichtenhefte oder sowas? |
Kommt auf den Kunden, die Größe des Projekts und die Abrechnungsart an. Bei großen Kunden/Projekten auf jeden Fall, bei Pauschalpreisen erst recht, damit man nachher nicht noch zwei Wochen nacharbeiten muß, weil man selbst und der Kunde eine andere Vorstellung von einem "fertigen" Projekt hatten.
____________ beehave - home of humbug ... [we can't afford to be neutral]
|
|
Nach oben |
|
boris
Beiträge: 11194
|
Titel: (Kein Titel)
Verfasst am: Mi, 25 Apr 2007, 23:25 |
|
|
Hast du eigentlich mal "AJAXed" für phpBB ausprobiert ? Hab das nur mal grob überflogen, aber die Features waren insgesamt nicht unblöd: Posts direkt editieren können, etc. etc.
Der Einbauaufwand kam mir dann aber doch etwas monströs vor, deswegen hab ichs gelassen ...
____________ beehave - home of humbug ... [we can't afford to be neutral]
|
|
Nach oben |
|
Puge Henis
|
Titel: (Kein Titel)
Verfasst am: Do, 26 Apr 2007, 05:11 |
|
|
boris @ Mi, 25 Apr 2007, 23:25 gab folgendes von sich: |
Hast du eigentlich mal "AJAXed" für phpBB ausprobiert ? Hab das nur mal grob überflogen, aber die Features waren insgesamt nicht unblöd: Posts direkt editieren können, etc. etc.
Der Einbauaufwand kam mir dann aber doch etwas monströs vor, deswegen hab ichs gelassen ... |
hab sowas kürzlich in nem anderen Forum gesehen und dachte auch gleich: für den Posting-Editor ist das doch echt ne feine Sache: Die Preview ist sofort da, ohne dass die Seite neu laden muss. Und alles wird viel fixer!
Na komm Boris, wäre das nicht ein netter neuer Mod?
phpbb-WYSIWYG-Mod
So fett muss der Mod ja nicht sein...
|
|
Nach oben |
|
boris
Beiträge: 11194
|
Titel: (Kein Titel)
Verfasst am: Fr, 27 Apr 2007, 23:26 |
|
|
Randgruppe™ @ Do, 26 Apr 2007, 05:11 gab folgendes von sich: |
Na komm Boris, wäre das nicht ein netter neuer Mod? |
Wäre schon, da es die Nummer aber schon gibt (wenn auch nur eingebettet in das Monster-Teil), ich gerade so gar keine Zeit habe und mir schon jetzt vor dem zu leistenden Support graut: ich stelle das mal zurück
____________ beehave - home of humbug ... [we can't afford to be neutral]
|
|
Nach oben |
|
|
|
ähnliche Beiträge |
|
Thema
| Autor
| Forum
| Antworten
| Verfasst am
|
|
Alexander Solschenizyn - Der erste Kreis der Hölle |
boris |
kühnes mittelscharfer |
0 |
Mo, 08 Apr 2024, 18:23 |
|
Tschingis Aitmatow - Der erste Lehrer |
boris |
kühnes mittelscharfer |
0 |
Mi, 08 Sep 2021, 20:31 |
|
A. E. van Vogt - Der erste Marsianer |
boris |
kühnes mittelscharfer |
0 |
Mo, 13 Jul 2020, 22:34 |
|
Film: Beim Sterben ist jeder der Erste |
boris |
zelluloid |
0 |
Do, 07 Apr 2016, 16:52 |
|
Ian McEwan - Erste Liebe - Letzte Riten |
boris |
kühnes mittelscharfer |
0 |
Do, 02 Jul 2015, 11:33 |
Schreiben: nein. Antworten: nein. Bearbeiten: nein. Löschen: nein. Umfragen: nein.
|