2009-04-29 3 views
2

Ich versuche herauszufinden, ob XUL ein guter Kandidat für GUI-Formulare in Intranet-Anwendungen ist.Barebones minimal Beispiel: mit XUL zu http POST

Es war schwierig, jemanden zu finden, der tatsächlich verwendet es obwohl. Daher dachte ich, ich würde nach einem Hallo-Welt-Stil-Beispiel fragen.

Angenommen, ich habe eine PHP-Seite, die nur Inhalte anzeigt, die über HTTP POST gesendet wurden. (z. B.)

Kann mir jemand den minimalen Code zeigen, den es braucht, um ein XUL-Formular zu erstellen, das Vorname, Nachname und Alter sammelt und mir erlaubt, das an die obige URL zu senden?

Alle Links oder Fine Handbücher oder Referenzen, die ein solches Beispiel geben, sind mehr als willkommen.

Antwort

1

Ich benutze es für eine Intranet-Anwendung und habe das seit ein paar Jahren getan. Es kann schwierig sein, damit zu beginnen, aber wenn Sie ein paar Dinge verstehen, ist es einfach, es für Sie arbeiten zu lassen.

  1. Fast alles vergessen, was Sie über HTML wussten. Es ist NICHT HTML und es gibt viele Dinge, die man nicht auf die alte Art tun kann, aber dann gibt es eine unglaubliche Menge anderer Dinge, die man stattdessen tun kann.

  2. Alles, was die Kommunikation betrifft, ist mit Javascript gemacht, und nicht mit Formularen.

  3. Overlays haben nichts mit Divs zu tun. Aber es ist sehr nützlich, um ein Design für größere Projekte aufzuteilen.

  4. Wenn eine XUL-Seite nicht in allen Tags korrekt formatiert ist, wird die Seite nicht angezeigt.

Es ist eine Google-Gruppen, in denen der Hauptzweck XUL zu diskutieren Fern ist: http://groups.google.com/group/remotexul

Es ist nicht ganz aktiv noch, aber mehr Mitglieder sind mehr als willkommen :)

Hier ist ein minimal Beispiel:

<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 
<window id="yourwindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
<script language="javascript"> 
    function send() 
    { 
     var firstName = document.getElementById('firstName').value; 
     var lastName = document.getElementById('lastName').value; 
     var age = document.getElementById('age').value; 
     var postData = "firstName="+firstName; 
     postData += "&amp;lastName="+lastName; 
     postData += "&amp;age="+age; 

     var req = new XMLHttpRequest(); 
     req.open("POST", "/test.php", false); 
     req.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 

     req.send(postData); 
     alert(req.responseText); 

    } 
</script> 
<hbox> 
    <vbox> 
     <hbox> 
      <label value="First Name" control="firstName"/> 
      <textbox id="firstName"/> 
     </hbox> 
     <hbox> 
      <label value="Last Name" control="lastName"/> 
      <textbox id="lastName"/> 
     </hbox> 
     <hbox> 
      <label value="Age" control="age"/> 
      <textbox id="age" value="30" type="number"/> 
     </hbox> 
     <button onclick="send()" label="Send"/> 
    </vbox> 
</hbox> 
</window> 

ich möchte auch betonen, dass Sie in das Senden von Daten hin und her zwischen XUL und PHP aussehen sollte Verwenden Sie stattdessen ein XMLRPC- oder JSON-Framework. Die JSON-Unterstützung wird in Firefox 3.5 integriert sein.

Eine andere Sache ist, dass, bis Firefox 3.5 ankommt, Sie nicht Cross-Site XMLHttpRequest's tun können, wenn Sie einige Konfiguration in about: config vornehmen. Das bedeutet, dass nur xul auf mysite.com Anfragen an mysite.com/postdump.php senden kann.

1

Erstellen Sie eine Reihe von < Textbox> 's, fügen Sie eine Senden < Schaltfläche>, und nach dem Lesen der Daten aus den Textfeldern, senden Sie es mit xmlhttprequest. Sie können GET oder POST verwenden.

1

Sie können einfache alte XHTML-Formulare verwenden, vorausgesetzt, Sie verwenden ihren Namespace in XUL, da es XML ist.