Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Base de datos GIGANTE

Estas en el tema de Base de datos GIGANTE en el foro de PHP en Foros del Web. Hola a Todos Me gustaría que vieran el siguiente código: <html> <head></head> <body> <div STYLE="margin-left: 20px; margin-top: 10px"> PaÃ*s: <select name="slist1" onChange="SList.getSelect('slist2', this.value);"> <option>Seleccionar...</option> <option ...
  #1 (permalink)  
Antiguo 31/07/2013, 14:18
 
Fecha de Ingreso: junio-2013
Mensajes: 15
Antigüedad: 11 años, 5 meses
Puntos: 0
Base de datos GIGANTE

Hola a Todos


Me gustaría que vieran el siguiente código:

<html>
<head></head>
<body>
<div STYLE="margin-left: 20px; margin-top: 10px">
PaÃ*s: <select name="slist1" onChange="SList.getSelect('slist2', this.value);">
<option>Seleccionar...</option>
<option value="Alemania">Alemania</option>
<option value="Austria">Austria</option>
<option value="Bélgica">Bélgica</option>
<option value="China">China</option>
<option value="Dinamarca">Dinamarca</option>
<option value="Emiratos Arabes Unidos">Emiratos Arabes Unidos</option>
<option value="Escocia">Escocia</option>
<option value="España">España</option>
<option value="Francia">Francia</option>
<option value="Grecia">Grecia</option>
<option value="Inglaterra">Inglaterra</option>
<option value="Italia">Italia</option>
<option value="PaÃ*ses Bajos">PaÃ*ses Bajos</option>
</select><br></br>
<span id="slist2"></span> <div id="scontent"></div>
<script>
var SList = new Object();
var txtsl2 = 'Ciudad:';
SList.slist2 = {
"Alemania": ['Heidelberg'],
"Austria": ['Viena'],
"Bélgica": ['Brujas', 'Bruselas'],
"China": ['Shanghai'],
"Dinamarca": ['Copenhague'],
"Emiratos Arabes Unidos": ['Dubai'],
"Escocia": ['Edimburgo'],
"España": ['Asturias', 'Barcelona', 'Bilbao', 'Córdoba', 'Granada', 'Ibiza', 'Madrid', 'Palma de Mallorca', 'Santiago de Compostela', 'Sevilla', 'Torremolinos'],
"Francia": ['ParÃ*s', 'Niza'],
"Grecia": ['Atenas'],
"Inglaterra": ['Londres'],
"Italia": ['Roma'],
"PaÃ*ses Bajos": ['Amsterdam'],
};

SList.scontent = {
"Viena": '<font size="2"><br>AUSTRIA TREND MESSE<a href=" http://www.austria-trend.at/Hotel-Messe-Wien/en/ " target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href=" http://www.tripadvisor.es/Hotel_Review-g190454-d565860-Reviews-Austria_Trend_Hotel_Messe_Wien-Vienna.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a></br><p></p><font size="2">TREND BEIN THERESIANUM<a href=" http://www.austria-trend.at/hotel-beim-theresianum/en/" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href="http://www.tripadvisor.es/Hotel_Review-g190454-d264920-Reviews-Austria_Trend_Hotel_Beim_Theresianum-Vienna.html " target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a><p></p><font size="2">REGINA<a href=" http://www.kremslehnerhotels.at/en/hotel-regina-vienna/ " target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href=" http://www.tripadvisor.es/Hotel_Review-g190454-d228056-Reviews-Hotel_Regina-Vienna.html " target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a></font>',
"Amsterdam": '<font size="2"><br>CASA 400<a href="http://www.hotelcasa400.nl/nl/index.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href="http://www.tripadvisor.com.ar/Hotel_Review-g188590-d232326-Reviews-Hotel_Casa_400-Amsterdam_North_Holland_Province.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a></br><p></p><font size="2">ALBUS<a href="http://www.albushotel.com/en/index.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href="http://www.tripadvisor.com.ar/Hotel_Review-g188590-d232328-Reviews-The_Albus-Amsterdam_North_Holland_Province.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a><p></p><font size="2">NH DOELEN<a href="http://www.nh-hoteles.es/nh/es/hoteles/holanda/amsterdam/nh-doelen.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href="http://www.tripadvisor.com.ar/Hotel_Review-g188590-d229171-Reviews-NH_Doelen-Amsterdam_North_Holland_Province.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a><p></p><font size="2">CONSERVATORIUM<a href="http://www.conservatoriumhotel.com/" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href="http://www.tripadvisor.com.ar/Hotel_Review-g188590-d2418096-Reviews-Conservatorium_Hotel-Amsterdam_North_Holland_Province.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a><p></p><font size="2">NH KRASNAPOLSKY<a href="http://www.nh-hotels.nl/nh/nl/hotels/nederland/amsterdam/nh-grand-hotel-krasnapolsky.html?nhsubagentid=110095220109&nhagen tid=11009&utm_medium=maps&utm_campaign=googleplace s&utm_source=google" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href="http://www.tripadvisor.com.ar/Hotel_Review-g188590-d229182-Reviews-NH_Grand_Hotel_Krasnapolsky-Amsterdam_North_Holland_Province.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a><p></p><font size="2">RADISSON BLU<a href="http://www.radissonblu.com/hotel-amsterdam" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href="http://www.tripadvisor.com.ar/Hotel_Review-g188590-d230875-Reviews-Radisson_Blu_Hotel_Amsterdam-Amsterdam_North_Holland_Province.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a><p></p><font size="2">BW LEIDSE SQUARE<a href="http://www.bestwestern.nl/en/hotels/netherlands/north-holland/amsterdam/leidsesquarehotel" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href="http://www.tripadvisor.com.ar/Hotel_Review-g188590-d626262-Reviews-BEST_WESTERN_Leidse_Square_Hotel-Amsterdam_North_Holland_Province.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a><p></p></font>',
"Heidelberg": '<font size="2"><br>MARRIOT HEIDELBERG<a href="http://www.marriott.com/hotels/travel/hdbmc-heidelberg-marriott-hotel/ " target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/8/button001.png" width="30" heigh="12" alt="Ver Web del hotel" style="margin-left:10px" align="top"></a><a href="http://www.tripadvisor.com.ar/Hotel_Review-g187286-d239052-Reviews-Marriott_Heidelberg_Hotel-Heidelberg_Baden_Wurttemberg.html" target="_blank"><img src="http://loginnews.com.ar/destefanis-travel/archivos/6/Tripadvisor2.png" width="20" heigh="10" alt="Ver en TripAdvisor" style="margin-left:7px" align="top"></a></br></font>'
};


SList.getSelect = function(slist, option) {
document.getElementById('scontent').innerHTML = '';

if(SList[slist][option]) {
if(slist == 'scontent') document.getElementById('scontent').innerHTML = SList[slist][option];
else if(slist == 'slist2') {
var addata = '<option>Seleccionar...</option>';
for(var i=0; i<SList[slist][option].length; i++) {
addata += '<option value="'+SList[slist][option][i]+'">'+SList[slist][option][i]+'</option>';
}

document.getElementById('slist2').innerHTML = txtsl2+' <select name="slist2" onchange="SList.getSelect(\'scontent\', this.value);">'+addata+'</select>';
}
}
else if(slist == 'slist2') {
document.getElementById('slist2').innerHTML = '';
}
}
--></script>
</div>
</div>
<div STYLE="margin-left: 20px; margin-top: 10px">
<font size="1"><br>
Hoteles sugeridos en diferentes categorÃ*as con excelente relación Precio/Calidad según estadÃ*sticas y opiniones de nuestros pasajeros. <p>Querés recomendarnos un hotel? Envianos un mail a <a href="mailto:[email protected]">[email protected]</a> con la web del hotel y podrás verlo dentro de nuestra selección.</p></br></font></div>
</body>
</html>





Como verán, tengo un grave problema.
Mi Javascript terminó siendo gigante. y aún le faltan datos.
Sé que debería trabajar con PHP y MySQL, pero además de ser novato en eso, creo que lo mejor sería dejar el combobox en javascript y colocar en la base de datos los hoteles con sus datos.

Alguien que pueda ayudarme con esto?
Gracias!
  #2 (permalink)  
Antiguo 31/07/2013, 14:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Base de datos GIGANTE





Lo siento.

Si no tienes experiencia en Bases de Datos como para resolver mejor (y más simple) este asunto, mi recomendación es que pongas todo eso en un XML y uses SimpleXML, u otro recurso para el caso.
Pero no hagas eso...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 31/07/2013, 14:43
 
Fecha de Ingreso: junio-2013
Mensajes: 15
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Base de datos GIGANTE

Gracias por responder gnzsoloyo.

Pero no me ha gustado tu respuesta! jajajajaa

Es que he avanzado mucho para llegar hasta allí. Y por lo que estuve viendo, SimpleXML no sé si es más simple que PHP.

Es posible colocar todos los datos de la lista en una base de datos, dejando las listas dependientes en el javascript?

Necesito acortar este código en la cantidad de caracteres ya que donde lo debo colocar tengo un campo limitado.


Si consideras que SimpleXML es mi única alternativa, favor me dices como funciona exactamente y porqué es más simple que una base de datos?

Gracias!
  #4 (permalink)  
Antiguo 31/07/2013, 15:49
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 19 años, 1 mes
Puntos: 56
Respuesta: Base de datos GIGANTE

Si tu lista es extensa la recomendación es tenerla en una base de datos; imagina que es necesario mostrarla en más de un formulario: eso te obligaría a reescribirla tantas veces como la necesites con el riesgo de perder integridad en la información. Si a pesar de ello prefieres mantenerla con javascript bien puedes modularizar un poco tu página para que la lista se encuentre en un solo archivo .js o función y poder utilizarla desde cualquier página
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #5 (permalink)  
Antiguo 31/07/2013, 16:22
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Base de datos GIGANTE

Hay muchos ejemplos de selects dependientes con js en la web, eso requiere de comunicarse con el servidor, por ejemplo con php.

Este método es ideal cuando tienes muchos datos, ya que sólo cargas los datos de select que necesitas.

Así que te recomiendo que busques algún ejemplo de los muchos que hay publicados, incluso en este mismo foro. Yo publiqué un ejemplo usando xajax.
  #6 (permalink)  
Antiguo 01/08/2013, 07:11
 
Fecha de Ingreso: junio-2013
Mensajes: 15
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Base de datos GIGANTE

Hola jcxnet


Modularizar?
No me suena el término.

Según entiendo, puedo poner todos los datos de los hoteles en un archivo js y llamar a este archivo desde el script?

Para ser más básico (que es lo que realmente soy jeje): al seleccionar la ciudad en el segundo select, puede llamar a un archivo js donde estén cargados los hoteles?


Gracias por su tiempo!
  #7 (permalink)  
Antiguo 01/08/2013, 09:17
 
Fecha de Ingreso: junio-2013
Mensajes: 15
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Base de datos GIGANTE

jcxnet, capo total.



Pude solucionar mi problema de manera extremadamente fácil.

miren:

<html>
<head></head>
<body>
<div STYLE="margin-left: 20px; margin-top: 10px">
País: <select name="slist1" onChange="SList.getSelect('slist2', this.value);">
<option>Seleccionar...</option>
<option value="Alemania">Alemania</option>
<option value="Austria">Austria</option>
<option value="Bélgica">Bélgica</option>
<option value="China">China</option>
<option value="Dinamarca">Dinamarca</option>
<option value="Emiratos Arabes Unidos">Emiratos Arabes Unidos</option>
<option value="Escocia">Escocia</option>
<option value="España">España</option>
<option value="Francia">Francia</option>
<option value="Grecia">Grecia</option>
<option value="Inglaterra">Inglaterra</option>
<option value="Italia">Italia</option>
<option value="Países Bajos">Países Bajos</option>
</select><br></br>
<span id="slist2"></span> <div id="scontent"></div>
<script src="http://yourjavascript.com/1038101243/hoteles.js" language="JavaScript"></script>
</div>
</div>
<div STYLE="margin-left: 20px; margin-top: 10px">
<font size="1"><br>
Hoteles sugeridos en diferentes categorías con excelente relación Precio/Calidad según estadísticas y opiniones de nuestros pasajeros. <p>Querés recomendarnos un hotel? Envianos un mail a <a href="mailto:[email protected]">[email protected]</a> con la web del hotel y podrás verlo dentro de nuestra selección.</p></br></font></div>
</body>
</html>



Gracias también a la web YourJavascript donde pude alojar gratis mi .js

Solución simple a usuario con pocos conocimientos.
gracias de Nuevo!

Etiquetas: combobox, dependientes, listas, mysql, países
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 12:32.