Foros del Web » Programando para Internet » Javascript »

Cosulta javascript

Estas en el tema de Cosulta javascript en el foro de Javascript en Foros del Web. ¡Hola! Tengo 1 problemilla, a ver, os explico, tengo un área (asignatura) que creo con este script: Código: <script type="text/javascript"> num=0; function crearArea(obj) { num++; ...
  #1 (permalink)  
Antiguo 25/07/2007, 05:56
 
Fecha de Ingreso: febrero-2007
Mensajes: 138
Antigüedad: 17 años, 9 meses
Puntos: 0
Cosulta javascript

¡Hola!

Tengo 1 problemilla, a ver, os explico, tengo un área (asignatura) que creo con este script:
Código:
<script type="text/javascript">

num=0;
function crearArea(obj) {
  num++;
 			//Creamos los datos del area
  

//Voy insertando los elementos a aprtir del objeto padre, un hermano, después seguido a éste otro hermano...y asi sucesivamente
  papa = obj.parentNode;
  hermano = obj.nextSibling;

  contenedor = document.createElement('div');
  contenedor.id = 'div'+num; 
  if (hermano == undefined)
	papa.appendChild(contenedor)
		
  else
	papa.insertBefore(contenedor, hermano)



  txt = document.createElement('<br>');				// Meto un salto de línea
  contenedor.appendChild(txt);
  
  txt = document.createElement('<br>');				// Meto un salto de línea
  contenedor.appendChild(txt);
  
  
  txt = document.createTextNode('Nombre del área: ');			//Creamos el modulo	
  ele = document.createElement('input'); 
  ele.type = 'text'; 
  ele.size='40';
  ele.name = 'cNombreArea'+num; 
  contenedor.appendChild(txt);
  contenedor.appendChild(ele);

  txt = document.createElement('<br>');				// Meto un salto de línea
  contenedor.appendChild(txt);
  
  txt = document.createElement('<br>');				// Meto un salto de línea
  contenedor.appendChild(txt);

  txt = document.createTextNode('  Horas totales del área: ');			//Creamos las horas del modulo
  ele = document.createElement('input'); 
  ele.type = 'text'; 
  ele.name = 'cHorasArea'+num; 
  ele.size='5';
  contenedor.appendChild(txt);
  contenedor.appendChild(ele); 
  txt = document.createElement('<br>');				// Meto un salto de línea
  contenedor.appendChild(txt);
  txt = document.createElement('<br>');				// Meto un salto de línea
  contenedor.appendChild(txt);

  txt = document.createTextNode('  Horas semanales del área: ');			//Creamos las horas del modulo
  ele = document.createElement('input'); 
  ele.type = 'text'; 
  ele.name = 'cHorasSemanalesArea'+num; 
  ele.size='5';
  contenedor.appendChild(txt);
  contenedor.appendChild(ele); 
  txt = document.createElement('<br>');				// Meto un salto de línea
  contenedor.appendChild(txt);
  txt = document.createElement('<br>');				// Meto un salto de línea
  contenedor.appendChild(txt);
	
  ele = document.createElement('input'); 
  ele.type = 'button'; 
  ele.value = 'Borrar'; 
  ele.name = 'div'+num; 
  ele.onclick = function () {borrar(this.name,obj)} 
  contenedor.appendChild(ele); 
  
  
}
function borrar(obj1, obj2) {
  papa = obj2.parentNode;
  papa.removeChild(document.getElementById(obj1));   
}

</script>

Y necesito validar que el número de horas totales de todas las áreas no sobrepasen una cantidad, y esa cantidad que no deben sobrepasar está en la base de datos. Entonces el problema es que desde javascript no se pueden realizar coonsultas ¿no? ¿como lo hago?

Muchas gracias
  #2 (permalink)  
Antiguo 25/07/2007, 07:05
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Cosulta javascript

Bueno, en teoría esas validaciones deberías hacerlas o haciendo submit en el formulario y comprobandolas en el servidor (donde tendrías los datos del formulario y de tu BD) o con un método más transparente, por ejemplo AJAX.

Te cuento lo que yo haría:
Volcaría la parte de la BD que necesites en tu documento para hacer la validación in situ en javascript, aunque también tendrás que hacer la validación en el servidor de todas maneras porque si no el sistema sería inseguro.


Sólamente tienes que imprimir en tu documento unas variables javascript que almacenen en número de horas máximas de cada área, y luego trabajaríamos con esas variables únicamente.



Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 25/07/2007, 10:32
 
Fecha de Ingreso: febrero-2007
Mensajes: 138
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Cosulta javascript

Pero para hacerlo en javascript, hago la consulta en php en mi página y ¿cómo paso el resultado de la consulta a javascipt??
  #4 (permalink)  
Antiguo 25/07/2007, 15:50
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Cosulta javascript

Lo que quería decir es que con PHP haces la consulta a tu base de datos, y vuelcas todo lo que necesites para validar al documento, en forma de variable javascript. Algo así:

Código PHP:
<?
// conexion..
// seleccion de bd...
// query mysql con los datos

echo "<script type='text/javascript'>\n";
echo 
"var maxHoras=new Array();\n"
//while - por cada campo de la consulta mysql
echo "maxHoras['".$campoAsignatura."'] = ".$campoHoras.";\n";
//fin while
echo "</script>";
?>
De esa manera en el documento tendrás impreso:
Código PHP:
<script type='text/javascript'>
var 
maxHoras=new Array();
maxHoras['fisica'] = 5;
maxHoras['matematicas'] = 8;
maxHoras['ingles'] = 2;
.
.
</script> 

Así ya después con tus campos javascript únicamente tocaría contrastar el número de horas insertado para inglés con maxHoras["ingles"], y decidir qué hacer.


¿Me he explicado?

Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 26/07/2007, 02:10
 
Fecha de Ingreso: febrero-2007
Mensajes: 138
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Cosulta javascript

Si, ya lo he pillado, gracias
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 18:47.