AJAX...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Hat jemand eine Ahnung, warum das hier nicht geht?

Code: Alles auswählen

function ajax(url){
                 var req = null;

                try{
                    req = new XMLHttpRequest();
                }
                catch (ms){
                    try{
                        req = new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (nonms){
                        try{
                            req = new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (failed){
                            req = null;
                        }
                    }  
                }

                if (req == null)
                      alert("Fehler!");
                  req.open("GET", url + '.py', true);
                req.onreadystatechange = function(){            
                    switch(req.readyState) {
                            case 4:
                            if(req.status!=200) {
                                alert("Fehler:"+req.status); 
                            }else{    
                                document.getElementById(url).innerHTML = req.responseText;
                            }
                            break;
                    
                            default:
                                return false;
                            break;     
                        }
                    };
  
                  req.setRequestHeader("Content-Type",
                                      "application/x-www-form-urlencoded");
                req.send(null);
			}




<form>
			<input type="text" value="1" size="1" name="eintrag_anzahl" /><input type="button" onclick="ajax('neuer_eintrag')" value="Neuer Eintrag" />
		</form>
<div id="neuer_eintrag"></div>

Code: Alles auswählen

#!/usr/bin/python
import cgitb; cgitb.enable()
import cgi
form=cgi.FieldStorage()
print "Content-Type: text/html\n"

if form.has_key("eintrag_anzahl"):
	print form["eintrag_anzahl"].value 
print "asd"


das asd wird ausgegeben nur das was eigentlich ausgegeben werden soll, eben nicht...

Danke!
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Kann es daran liegen, dass ich den mod_python habe?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo SchneiderWeisse!

Ich habe den Code jetzt einfach nur mal grob überflogen. Also schlagt mich nicht, wenn ich etwas übersehen habe.
Mir scheint, du forderst einfach **NUR** per GET (``req.open("GET", url + '.py', true);``) Daten vom Server an. Dabei werden die Daten vom Formular nicht an den Server gesendet.

Entweder du hängst die Daten an die URL an oder du machst das über einen POST-Request. Ich weiß allerdings nicht, wie man so etwas mit JavaScript macht. Frage mich in zwei Wochen noch einmal. Dann habe ich das JavaScript-Buch fertig durchgelesen. :P

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gerold hat geschrieben:Entweder du hängst die Daten an die URL an oder du machst das über einen POST-Request. Ich weiß allerdings nicht, wie man so etwas mit JavaScript macht.
Naja, bei JavaScript bin ich immer zu faul ein Buch zu lesen (außer "kurz & gut", das ist ok), wenn man sich sowieso alles mit einer Suchmaschine finden kann. Zum Beispiel hier.

Hint: JavaScript library nutzen. Die die ich nutze, jQuery kann auch AJAX-Requests via POST schicken. Gleiches gilt für Dojo (scheint POST auch zu können), Prototype (nutzt POST als Default für AJAX), MochiKit, Mootools (nutzt auch POST per Default). Mehr Libs zu checken mag ich nicht mehr. Bis auf jQuery nutze ich auch keine von denen obwohl viele durchaus gut klingen komme ich nicht dazu, weil jQuery eben der Grund ist, warum JS Spaß machen kann :D Vielleicht probiere ich aber mal Ext + jQuery.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

@Leonidas: jetzt kommt doch eh jqueryUi, gibt also bald keinen Grund für extJs mehr :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

apollo13 hat geschrieben:jetzt kommt doch eh jqueryUi, gibt also bald keinen Grund für extJs mehr :)
Ah, ok. Wobei ich zugeben muss, das ExtJS auch ziemlich interessant ausschaut.

Was jetzt praktisch wäre, wäre ein Library-Vergleich, denn es gibt wirklich eine *menge* Libs, die zumindest auf den ersten Blick Klasse ausschauen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Klar andere Libs schauen auch nicht schlecht aus (ala mootools). Aber Jquery überzeugt mich duch Chaining CSS-Selektoren etc. Bloated Frameworke wie YUI fallen bei mir sowieso durch, und jQuery finde ich war eine gute Wahl (für jemanden wie mich, der nicht viel Javascript kann :)).

Was UI betrifft ist Ext-JS sicher das Enterprise Paket aber auch etwas kompliziert. Da gibt es Data Proxies etc, bis man zur Anzeige kommt, das ist mir fast zu aufwändig (sicher wenn man es einmal kann...). Hier verspricht jQuery-UI allerdings eine nette Alternative zu werden, wenn die Einfachheit von jQuery beibehalten wird (was mir im irc zumindest versichert wurde, und es schaut auch einfach aus)
Antworten