Foros del Web » Programando para Internet » PHP »

Consejo sobre diseño de formulario

Estas en el tema de Consejo sobre diseño de formulario en el foro de PHP en Foros del Web. Muy buenas. Os explico mi caso para ver si me podéis aconsejar sobre cómo poder hacerlo. Tengo una página en la que hay que rellenar ...

  #1 (permalink)  
Antiguo 07/08/2011, 15:35
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Consejo sobre diseño de formulario

Muy buenas.

Os explico mi caso para ver si me podéis aconsejar sobre cómo poder hacerlo.

Tengo una página en la que hay que rellenar un formulario. En una de las secciones de dicho formulario hay que introducir una serie de nombres, mínimo 1 y máximo 7, eso dependerá del usuario. Estos nombres a introducir hay que seleccionarlos de una lista guardada en una tabla dentro de una base de datos. Cómo diseñaríais esto?

Yo había pensado utilizar un pop-up para sacar la lista de nombres con un check-box cada uno para que el usuario seleccione los que tenga que introducir en el formulario. Una vez lo haya hecho el usuario, meter esos nombres en su sección correspondiente dentro del formulario. En un pop-up se puede utilizar el GET, no?

En fin, os pido consejo a los que tenéis más experiencia programando páginas web o a los que tienen la imaginación más desarrollada que yo!

Un saludo
  #2 (permalink)  
Antiguo 07/08/2011, 15:41
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Consejo sobre diseño de formulario

Yo metería todos los nombres de la base de datos en un select múltiple y luego recojo el array y validas si el array tiene entre 1 y 7 elementos.

http://www.desarrolloweb.com/articulos/1576.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 07/08/2011, 16:00
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 16 años, 2 meses
Puntos: 10
Respuesta: Consejo sobre diseño de formulario

1er consejo... los pop-up molestan
2do consejo... hazle caso a andresdzphp
  #4 (permalink)  
Antiguo 07/08/2011, 16:04
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

Lo había pensado pero sacar un select múltiple con 400 nombres me parecía que no quedaba muy bien.

Si fuesen 15 ó 20 nombres sí quedaría bien pero con una lista tan larga... no sé.

No obstante, muchas gracias por los consejos.
  #5 (permalink)  
Antiguo 07/08/2011, 16:20
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 16 años, 2 meses
Puntos: 10
Respuesta: Consejo sobre diseño de formulario

Puedes usar una lista desplegable con multiselect... pero para el usuario puede ser incomodo...
En todo caso desplega la lista de nombres con javascript y cuando el usuario haya seleccionado todos ocultala.
  #6 (permalink)  
Antiguo 07/08/2011, 23:37
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

Te refieres a usar una ventana emergente?
  #7 (permalink)  
Antiguo 08/08/2011, 02:19
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

Cita:
Iniciado por S_Vai Ver Mensaje
Lo había pensado pero sacar un select múltiple con 400 nombres me parecía que no quedaba muy bien.

Si fuesen 15 ó 20 nombres sí quedaría bien pero con una lista tan larga... no sé.

No obstante, muchas gracias por los consejos.
Es que con 400 posibilidades cualquier cosa va a quedar "no muy bien". Para qué necesitas esto concretamente? Es que para limitar a 400 opciones, casi es mejor que no limites directamente y dejes que se meta lo que se quiera.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #8 (permalink)  
Antiguo 08/08/2011, 03:13
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

El tema es que si dejo al usuario que teclee el nombre, muy posiblemente no lo escriba igual siempre y tendría en la base de datos varios nombres pero que en realidad deberían ser la misma persona. Porque una vez podría estar sin acentos o con el nombre en minúscula, etc.

Después, cuando quisiera sacar las estadísticas de esa persona no serían correctas puesto que el nombre no es exactamente igual siempre. Por eso tengo dentro de otra página un espacio creado para introducir los nombres que necesita el usuario que no están todavía en la base de datos, para que lo escriba una vez y después siempre se utilice ese nombre introducido.

Por poner un ejemplo, imagínate un aplicación en la que se lleva un registro de un determinado espectáculo en el que hay varios artistas. En la ficha de cada espectáculo tienes que introducir varios datos como los artistas que participan, asistencia de público, recaudación, incidencias, etc.

Si cuando rellenas una ficha pones que ha actuado José González pero cuando tienes que rellenar otra en la que también ha participado pones Jose Gonzalez, ya no sería el mismo, o pones josé gonzalez, etc. Por eso quiero que la persona seleccionada al rellenar el formulario sea exactamente la que ya está incluida en la base de datos. Y de momento, en la mía tengo 400 y seguirá creciendo.

No sé si me he explicado bien.

Última edición por S_Vai; 08/08/2011 a las 03:21
  #9 (permalink)  
Antiguo 08/08/2011, 03:33
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

Lo has explicado bien, pero podrías plantearlo de otra forma.

Que los usuarios escriban los nombres como quieras y tú los guardas como quieren, pero que a la hora de hacer estadísticas, iguales esas variaciones. Puedes hacer un método sencillo que sustituyas las letras con tildes por letras sin tilde y, luego, pasar todo a minúscula para la comparación y el cálculo de estadísticas.

Con str_replace haces quitas tildes y caracteres extraños y con strtolower pasas a minúsculas, para tí todo esto será igual (a la hora de hacer la estadística, en la base de datos estará original como lo introdujo):
José González = josé gonzalez = JosÉ GonZÁleZ = jose GONZÁLEZ = ...

No sé, yo te lo planteo, por si te viene bien, la verdad que me parece extraño un select de 400 posibilidades. Siempre son nombres? Y por qué la idea de pueden ser 1 mínimo y 7 máximo? No es por poner en duda tu aplicación, es simplemente un intento de buscar una solución óptima.

Un saludo.

Edito: añadir que seguramente lo suyo sería una especie de "autocompletar". Es decir, que el usuario fuera introduciendo los primeros caracteres del nombre y le aparecieran varias opciones a elegir. Esto tendrías que hacerlo con AJAX, si te interesa, lo podemos mirar también.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #10 (permalink)  
Antiguo 08/08/2011, 03:39
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

Mira, buscando en google se encuentra todo.

Esta librería integrada con JS hace justo lo que quieres. Necesitas un fichero PHP cuya salida dinámica sea un XML con los posibles valores que puede tomar el campo de texto. Luego le pasas ese XML a la función JS de la librería y te automatiza todo.

No lo he probado, lo acabo de encontrar, pero tiene buena pinta. Coméntame y lo miramos.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #11 (permalink)  
Antiguo 08/08/2011, 04:05
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

Cita:
Iniciado por vgonga1986 Ver Mensaje
No sé, yo te lo planteo, por si te viene bien, la verdad que me parece extraño un select de 400 posibilidades. Siempre son nombres? Y por qué la idea de pueden ser 1 mínimo y 7 máximo? No es por poner en duda tu aplicación, es simplemente un intento de buscar una solución óptima.
Sí, siempre son nombres. El campo del nombre no puede quedar vacío, tiene que haber como mínimo 1 aunque el máximo se podría quitar.


Cita:
Iniciado por vgonga1986 Ver Mensaje
Edito: añadir que seguramente lo suyo sería una especie de "autocompletar". Es decir, que el usuario fuera introduciendo los primeros caracteres del nombre y le aparecieran varias opciones a elegir. Esto tendrías que hacerlo con AJAX, si te interesa, lo podemos mirar también.
Lo del "autocompletar" me parece muy bueno opción pero... buff... AJAX? De momento eso es chino para mi. Entre el PHP, HTML y JavaScript tengo ya un follón que no veas!
  #12 (permalink)  
Antiguo 08/08/2011, 04:08
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

Pero has seguido el link que te dejé? Es hipersencillo, lo único que tienes que hacer es copiar el ejemplo que te viene ahí y, lo más complejo (pero que está tirado), es montar el XML con las opciones, pero eso es PHP igual que lo que estás haciendo ahora, ni más ni menos. Que sea AJAX o no es transparente para ti, usa la librería.

No tengas miedo a cosas nuevas, es mejor hacerlo desde el principio, aunque te lleve un poco más, que tener que rehacerlo más adelante.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #13 (permalink)  
Antiguo 08/08/2011, 04:10
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

Sí, he seguido el link que me has dejado. Lo miraré con más detenimiento a ver si me entero de algo.

Gracias!

Edito: Las 3 primeras partes las tengo más o menos claras. Insertar los scrips y crear el formulario no creo que tengan mucho problema. Lo que no termino de entender es la última parte:

Para finalizar el XML que devuelve el PHP debe tener un determinado formato para poder ser interpretado con nuestro Ajax Suggest.

01.<results>
02. <rs id="1" info="">Alejandro</rs>
03. <rs id="2" info="">Alberto</rs>
04. <rs id="3" info="">Alma</rs>
05.</results>

Última edición por S_Vai; 08/08/2011 a las 04:45
  #14 (permalink)  
Antiguo 08/08/2011, 09:19
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

Bueno, ya he conseguido encontrar un script para implementarlo en mi código y funciona bien con los datos que venían introducidos en su propio código. Lo que ahora no consigo es pasar los datos del array que he llenado con la tabla de mi base de datos al array de javascript creada para hacer el autocompletado.
  #15 (permalink)  
Antiguo 08/08/2011, 10:45
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

Es que es precisamente por eso por lo que surge AJAX. En serio, si vas a seguir la solución que te propuse, te echo una mano, pero si usas otra cosa, no pretendas que se te solucione de la nada.

El problema de los script esos es precisamente que los datos tienes que tenerlos de antemano, tienes que tener un array estático en JavaScript (código cliente) que tenga los datos y es imposible montar ese array haciendo una consulta, porque desde JavaScript no tienes acceso al servidor (es código en cliente) y, por tanto, no tienes acceso a la base de datos. Por eso el invento de pasar los datos con un XML, pero bueno, si quieres seguir buscando scripts que hagan milagros, adelante.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #16 (permalink)  
Antiguo 08/08/2011, 23:43
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

Vale, ahora me queda claro. No sabía que en javascript tenían que ser arrays estáticos. Como habrás visto soy totalmente nuevo en esta materia y estoy encantado de que me eches una mano.

La solución que me propusiste me pareció perfecta pero la veía un poco complicada para mi nivel y al encontrar la otra me pareció que hacía lo mismo pero más sencillo (craso error por mi parte!).

De tu solución no entiendo la última parte. La del formato del XML que devuelve el PHP.
  #17 (permalink)  
Antiguo 09/08/2011, 02:06
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

La librería que te he pasado se basa en un XML para la colocación de los diferentes elementos en el box de selección, ese XML tiene que tener el siguiente formato:
Código XML:
Ver original
  1. <results>
  2.         <rs id="1" info="">Alejandro</rs>
  3.         <rs id="2" info="">Alberto</rs>
  4.         <rs id="3" info="">Alma</rs>
  5.     </results>

Intenta primero montarlo todo para un XML sencillo que crees tú a mano, es decir, poniendo los datos directamente, sin sacarlos de la base de datos. Una vez esto te funcione, debes crear un fichero PHP, que sustituya este XML y que, cada vez que se ejecute dicho PHP, genere un XML, previa consulta de los datos de la base de datos.

Intenta primero con un XML estático y, si te sale, te echo una mano con la generación dinámica.

Un saludo.

PD: te dejo un link en castellano de cómo usar la librería.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #18 (permalink)  
Antiguo 09/08/2011, 03:25
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

El problema es que no sé crear un xml estático.

Estoy intentando aprovechar el código del enlace que me has pasado pero me estoy liando demasiado.
  #19 (permalink)  
Antiguo 09/08/2011, 03:26
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

Pues es abrir un fichero con el bloc de notas, escribir el contenido, guardarlo y luego cambiarle la extensión a .xml.

Así de fácil, sencillo y para toda la familia.

Un saludo.

Edito: hay que añadirle la cabecera en la primera línea, para que sepa que es un xml:
Código XML:
Ver original
  1. <?xml version="1.0" encoding="ISO-8859-1" ?>
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #20 (permalink)  
Antiguo 09/08/2011, 04:08
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

Sí, he creado el fichero con el Komodo edit y esto es lo que tengo en "datos.xml":

<?xml version="1.0" encoding="UTF-8"?>

<results>
<rs id="1" info="">Alejandro</rs>
<rs id="2" info="">Alberto</rs>
<rs id="3" info="">Alma</rs>
</results>


En el fichero que genera el texbox tengo esto (seguro que no está bien). Los nombres de variables he dejado los que tenía el código original excepto la llamada al fichero datos.xml.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Autosuggest con AJAX v2.0</title>


<script src="bsn.AutoSuggest_2.1.3.js" type="text/javascript"></script>
<link type="text/css" rel="stylesheet" href="autosuggest_inquisitor.css">
<script type="text/javascript">
function autosuggest(){
var options = {
script: "datos.xml?limit=6&",
varname: "materiales",
json:false,
maxresults:10,
timeout:9999,
noresults:'Ingresar nuevo material a la base de datos'
};
var as = new bsn.AutoSuggest('materiales_input', options);
}
</script>
</head>
<body onload="autosuggest();">

<form action="<? echo $_SERVER['PHP_SELF'];?>" method="post" id="formulario" name="form" >
<input type="text" style="width: 200px; " id="materiales_input" name="materiales" autocomplete="off">
<input type="submit" value="Submit" />
</form>

</body>

</html>
  #21 (permalink)  
Antiguo 09/08/2011, 05:04
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

Buenas,

Vamos a ver, el script no va a funcionar así como así, hay que adaptar tu código a lo que se pide.

Dame unos minutos y te monto una especie de minitutorial con un ejemplo sencillo a ver si lo puedes montar.

Vete descargando el firebug (si no lo tienes), que es una extensión para firefox, porque si trabajas con JS o AJAX, es imposible saber qué pasa sin esta herramienta (bueno, es posible, pero lo simplica mucho).

Voy montando el post, un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #22 (permalink)  
Antiguo 09/08/2011, 05:56
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

A ver, en primer lugar, descarga los ficheros de la librería de aquí.

Descomprímelo en el sitio donde lo quieras usar (ten en cuenta que esto va a definir más valores de aquí en adelante). Te pongo el ejemplo de mi carpeta para que lo veas bien (te pongo sólo los que se usan):
Código:
/ (raiz)
  - test.php
  - get_titles.php
  / AutoSuggest (esta es la carpeta que sale de descomprimir, pero la renombré, para simplicidad)
    - (varios ficheros)
    / css
      - autosuggest_inquisitor.css
      - (varios ficheros y carpetas más)
    / js
      - bsn.AutoSuggest_2.1.3.js
      - (varios ficheros y carpetas más)
Aquí tienes el código de test.php (te pongo comentarios, para que sepas qué es cada cosa, léetelos):
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.     <title>Autosuggest con AJAX v2.0</title>
  4.     <script type="text/javascript" src="AutoSuggest/js/bsn.AutoSuggest_2.1.3.js"></script> <!-- en src tendrás que poner la ruta de tu sistema de carpetas, esto está ajustado para la mía -->
  5.     <link type="text/css" rel="stylesheet" href="AutoSuggest/css/autosuggest_inquisitor.css"> <!-- en href tendrás que poner la ruta de tu sistema de carpetas, esto está ajustado para la mía -->
  6.     <script type="text/javascript">
  7.         function autosuggest(){
  8.             var options = {
  9.                 script: "get_titles.php?limit=6&", // Aquí tienes que poner el nombre de tu php que genera el xml, en mi caso get_titles. Lo demás tienes que dejarlo igual, luego verás por qué.
  10.                 varname: "title", // name del input del form que va a tener el autosuggest.
  11.                 json: false, // aquí pon siempre false, ya mirarás con json si quires en un futuro.
  12.                 timeout: 9999,
  13.                 noresults: '-- Sin sugerencia --'
  14.             };
  15.             var as = new bsn.AutoSuggest('title_input',  options); // aquí tendrás que poner el id del input del form que va a tener el autosuggest, en mi caso 'title_input'
  16.         }
  17.     </script>
  18. </head>
  19. <body onload="autosuggest();"> <!-- Se inicia el javascript aquí -->
  20.     <form action="<? echo $_SERVER['PHP_SELF'];?>" method="post" id="formulario" name="form" >
  21.         <input type="text" id="title_input" name="title" autocomplete="on"> <!-- Este es el input que tendrás que usar, con el id que pusiste arriba y el name que pusiste arriba. Cuando te lo lleves a tu form real, este input es el más importante, imprescindible -->
  22.         <input type="submit" value="Submit" />
  23.     </form>
  24. </body>
  25. </html>

Y este es el código de mi get_titles.php, que tendrás que adaptar a tus necesidades. Te pongo también comentarios:
Código PHP:
Ver original
  1. <?
  2. header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Fecha del pasado
  3. header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // siempre modificado
  4. header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
  5. header ("Pragma: no-cache"); // HTTP/1.0
  6.  
  7. // Primero se extraen los valores del campo y de limit. Yo pongo title porque el name de mi input en test.php es title, tú adáptalo a lo que necesites.
  8. $input = strtolower($_GET['title']);
  9. $limit = $_GET['limit'];
  10.  
  11. // Esta es sólo la consulta a la base de datos. Tienes que adaptarla a como funcione en tu código. Falta la conexión y el mysql_execute, añádelos tú.
  12. $qry = "SELECT * FROM Tabla WHERE title LIKE '%" . $input . "%' LIMIT 1, " . $limit;
  13.  
  14. // Ponemos en la cabecera que el resultado será XML.
  15. header("Content-Type: text/xml");
  16.  
  17. // Imprimimos la primera línea
  18. echo '<?xml version="1.0" encoding="ISO-8859-1" ?><results>';
  19. // Para cada fetch del resultado, imprimimos el tag xml correspondiente
  20. while ($row = mysql_fetch_assoc($titles)) {
  21.     // Esta línea dependerá de tu tabla, saca los campos que quieras, en mi caso son id y title.
  22.     echo '<rs id="' . $row['id'] . '" info="">' . $row['title'] . '</rs>';
  23. }
  24. echo '</results>';
  25. ?>

Para comprobar que tu fichero de generación del XML funciona bien, puedes poner en la url lo siguiente:
ruta_de_host/get_titles.php?limit=6&title=texto

Dónde lo que pongas en limit (6) será el límite de sugerencias que se mostrarán, title es el name de tu input en el formulario y texto es el texto que quieres que se busque. Esta llamada generará un XML con los resultados que se visualizará en tu navegador.

Y creo que ya está, prueba eso para una prueba sencillita, con alguna tabla de tu base de datos. Si te funciona, adáptalo al resto de tu código. Si tienes problemas, ponme por aquí, pero por favor, siempre poniendo código (estructura de carpetas y ficheros incluido) y siendo claro en la explicación, porque ya me estoy poniendo nervioso con este post.

Un saludo y suerte.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #23 (permalink)  
Antiguo 09/08/2011, 07:13
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

Me lo miro detenidamente y pruebo a ver si soy capaz. Te agradezco enormemente la ayuda que me estás prestando. En el momento que quieras acabar con este "soporte técnico" me lo dices.

Gracias.
  #24 (permalink)  
Antiguo 09/08/2011, 09:11
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

Ya lo he adaptado a mi aplicación y lo que es extraño es que el resultado que da al introducir directamente la dirección del fichero que genera el XML, tal y como me recomiendas para comprobar que funciona bien, es todo el texto que hay en el código desde el signo ">" después de "results" en la línea 18 del código que has puesto en tu post hasta el final. Ese es el resultado.
  #25 (permalink)  
Antiguo 09/08/2011, 09:44
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

Te tiene que visualizar el contenido del XML, pero la cabecera no, porque la cabecera es para que se entiendan los programas y sepan que eso es un xml. Igual que cuando pones la cabecera de HTML, eso luego no se visualiza en la página. Es esa tu duda? Si no, no la entiendo.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #26 (permalink)  
Antiguo 09/08/2011, 10:10
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

No,no. Lo que aparece en el cuerpo de la página como resultado de la ejecución es el texto del código literalmente. Esto es lo que aparece en el cuerpo de la página:

'; // Para cada fetch del resultado, imprimimos el tag xml correspondiente while ($row = mysql_fetch_assoc($qry)) { // Esta línea dependerá de tu tabla, saca los campos que quieras, en mi caso son id y title. echo '' . $row['nombre'] . ''; } echo ''; mysql_close($conexion); ?>

Por eso te digo que me parece extraño que salga eso.
  #27 (permalink)  
Antiguo 09/08/2011, 10:19
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

Eso es que está mal cerrado el trozo del echo o mal abierto. Es que los comentarios los he añadido después, igual tienes alguno mal cerrado. Prueba a volver a copiar la línea esa:
echo '<?xml version="1.0" encoding="UTF-8"?><results>';

Pero no hagas copy y paste, escríbela de 0, así te aseguras de cerrarlo todo bien.

Ya me cuentas, que terminó mi turno de trabajo. Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #28 (permalink)  
Antiguo 10/08/2011, 00:45
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

El problema está en el "?>" después de UTF-8. Lo toma como final de código php. He intentado poner toda la línea como comentario y sólo se pone hasta el "?>". El resto lo toma como código html.
  #29 (permalink)  
Antiguo 10/08/2011, 01:10
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consejo sobre diseño de formulario

Pues tienes que tener algo mal cerrado antes, porque a mí me va perfecto y lo tengo tal y como está ahí.

Pega el código, anda, a ver si veo algo mal.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #30 (permalink)  
Antiguo 12/08/2011, 00:09
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Consejo sobre diseño de formulario

Bueno, pues después de estar dándole muchas vueltas no consigo encontrar el error. Estoy empezando a desesperarme.

Código:
<?
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Fecha del pasado 
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // siempre modificado
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
 
// Primero se extraen los valores del campo y de limit. Yo pongo title porque el name de mi input en test.php es title, tú adáptalo a lo que necesites.
$input = strtolower($_GET['nombre']);
$limit = $_GET['limit'];
 
// Esta es sólo la consulta a la base de datos. Tienes que adaptarla a como funcione en tu código. Falta la conexión y el mysql_execute, añádelos tú.
$conexion = mysql_connect("localhost","root","");
mysql_select_db("bd",$conexion);
$qry = "SELECT * FROM artistas WHERE nombre LIKE '%" . $input . "%' LIMIT 1, ". $limit;
$resultado = mysql_query($qry,$conexion);

// Ponemos en la cabecera que el resultado será XML.
header("Content-Type: text/xml");
 
// Imprimimos la primera línea
echo '<?xml version="1.0" encoding="UTF-8"?><results>';

// Para cada fetch del resultado, imprimimos el tag xml correspondiente
while ($row = mysql_fetch_assoc($resultado)) {
    // Esta línea dependerá de tu tabla, saca los campos que quieras, en mi caso son id y title.
    echo '<rs id="' . $row['id_artista'] . '" info="">' . $row['nombre'] . '</rs>';
}
echo '</results>';
mysql_close($conexion);
?>

Etiquetas: consejo, diseño, tabla, formulario, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:42.