ejemplo mínimo de barebones: uso de XUL para http POST
Pregunta
Estoy tratando de averiguar si XUL es un buen candidato para formularios GUI en aplicaciones de intranet.
Sin embargo, ha sido difícil encontrar a alguien que realmente lo use . Por lo tanto, pensé en pedir un ejemplo de estilo hola mundial.
Supongamos que tengo una página php que no hace nada más que mostrar cualquier contenido enviado a través de HTTP POST. (por ej., http://mysite.com/postdumper.php )
¿Alguien puede mostrarme el código mínimo necesario para crear un formulario XUL que recopile el nombre, el apellido y la edad, y me permita PUBLICAR eso en la URL anterior?
Cualquier enlace o Manual Fino o referencias que den ese ejemplo son más que bienvenidos.
Solución
Lo uso para una aplicación de intranet y lo he hecho durante algunos años. Puede ser difícil comenzar, pero una vez que comprenda algunas cosas, es fácil hacer que funcione para usted.
-
Olvidé casi todo lo que sabías sobre HTML. NO es HTML y hay muchas cosas que no puedes hacer a la antigua usanza, pero hay una cantidad increíble de otras cosas que puedes hacer en su lugar.
-
Todo lo relacionado con la comunicación se realiza con JavaScript y no con formularios.
-
Las superposiciones no tienen nada que ver con los div. Pero es muy útil para dividir un diseño para proyectos más grandes.
-
Si una página XUL no está formateada correctamente en todas las etiquetas, la página ni siquiera se mostrará.
Hay un grupo de google donde el propósito principal es discutir XUL remoto: http://groups.google.com/group/remotexul
Todavía no está muy activo, pero más miembros son más que bienvenidos :)
Aquí hay un ejemplo mínimo:
<?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 += "&lastName="+lastName;
postData += "&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>
También me gustaría enfatizar que debe considerar enviar datos de un lado a otro entre XUL y PHP utilizando un marco XMLRPC o JSON. La compatibilidad con JSON vendrá como incorporada en Firefox 3.5.
Otra cosa es que hasta que llegue Firefox 3.5 no puede hacer XMLHttpRequest entre sitios a menos que realice alguna configuración en about: config. Lo que significa que solo xul en mysite.com puede enviar solicitudes a mysite.com/postdump.php.
Otros consejos
Cree una serie de < textbox > 's, agrega un envío < botón > ;, y después de leer los datos de los cuadros de texto, envíelos usando xmlhttprequest . Puede usar GET o POST.
puede usar formularios xhtml antiguos simples siempre que use su espacio de nombres en XUL ya que es XML.