Foros del Web » Programando para Internet » PHP »

no consigo ver este codigo bajo windows

Estas en el tema de no consigo ver este codigo bajo windows en el foro de PHP en Foros del Web. Hola a to2!! He realizado el siguiente codigo que accede a bases de datos de Mysql obteniendo las bases de datos en un campo "select" ...
  #1 (permalink)  
Antiguo 03/02/2003, 12:59
 
Fecha de Ingreso: febrero-2003
Mensajes: 15
Antigüedad: 14 años, 10 meses
Puntos: 0
no consigo ver este codigo bajo windows

Hola a to2!!
He realizado el siguiente codigo que accede a bases de datos de Mysql obteniendo las bases de datos en un campo "select" ,en el que al modificarlo mediante el metodo "onchage" me introduce las
tablas de dicha base de datos en otro campo "select".
Bueno, el caso es que bajo linux con apache y mysql va de perlas ) pero bajo windows no me entra en la funcion "opciones()" y ya no se si es por el codigo javascript, o por que.
El caso es que me muestra las tablas de la base de datos que viene seleccionada por defecto pero al modificar de BD no cambia las tablas (
Si alguien bajo windows puede probar el codigo y le funciona correctamente, me quitaria un gran peso de encima ya que no se si es de la configuracion del Php.ini o del codigo.
En fin gracias por adelantado. Este es el codigo :

<html>
<head>
</head>
<body>
<?php
$identificador = mysql_connect("localhost","root");

if (! $identificador) {
die ("Error en conexion ". mysql_error());
}

$basesdatos = mysql_list_dbs($identificador);
$i = 0;
while ($i < mysql_num_rows ($basesdatos)) {
$menu_bd[$i] = mysql_tablename ($basesdatos, $i);

$tablas = mysql_list_tables($menu_bd[$i]);
$j = 0;

while ($j < mysql_num_rows ($tablas)) {
$menu_tablas[$i][$j] = mysql_tablename ($tablas, $j);
$j++;
}

$i++;
}

print "<script language=\"javascript\">";
print "function opciones () {";

print "switch (document.formulario.base_de_datos.value) {";

for ($i = 0; $i < count ($menu_bd); $i++) {
print "case \"" . $menu_bd[$i] . "\" : document.formulario.tabla.length = ";
$length = count ($menu_tablas [$i]);
print $length . ";";
for ($j= 0; $j < $length; $j++) {
print "document.formulario.tabla.options[" .$j ."].text = \"" . $menu_tablas[$i][$j] . "\";";
print "document.formulario.tabla.options[" .$j ."].value = \"" . $menu_tablas[$i][$j] . "\";";
}
print "break;";
}
print "}";
print "}";
print "</script>";

print "<form name=formulario action=acciones.php method=post>";
print "<table align=center>";
print "<th>Base de datos<th>Tablas";
print "<tr><td>";

print "<select name=base_de_datos OnChange=\"opciones()\">";
for ($i = 0; $i < count ($menu_bd); $i++)
if ($i == 0)
print "<option value=" . $menu_bd[$i] . " selected>" .$menu_bd[$i];
else
print "<option value=" . $menu_bd[$i] . ">" .$menu_bd[$i];

print "</select>";

print "<td>";

print "<select name=tabla>";
for ($i = 0; $i < count ($menu_tablas[0]); $i++)
print "<option value=" . $menu_tablas [0][$i] . ">" .$menu_tablas [0][$i];

print "</select>";
print "<tr>";
print "<td><input type=radio name=operacion value=Añadir>Añadir";
print "<td><input type=radio name=operacion value=Borrar>Borrar";
print "<td><input type=radio name=operacion value=Consultar>Consultar";
print "<td><input type=radio name=operacion value=Modificar>Modificar";
print "<tr>";
print "<td><input type=submit value=Enviar>";

print "</form>";


?>
</body>
</html>
  #2 (permalink)  
Antiguo 03/02/2003, 13:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero q error te dá exactamente .. de javascript o de PHP? ...

Edita el código que geneneras via PHP (en tu navegador -> ver código) .. y mira si las variables las obtienes correctamente ..

Es probable que en windows uses php.ini la directiva register_globals a OFF .. y tu script recoge toda variable asumiendolo como globales ... pues no usas ningun $_POST['variable'] .. o $_GET['variable'] .. que por otro lado es lo q deberias usar (revisa las FAQ's .. primeras) ..

Tambien .. a nivel de sintax HTML .. omites el 99% de " comillas " en los tag value= y todos en general .. Usalos:
print "<input name=\"algo"\ value=\"aglo\" >";
Es decir .. cuando requieras de comillas en el interior de un print "" o de un echo "" .. usa las comillas \" comilas dobles con el \delaten para "escaparla" ...

Un saludo,
  #3 (permalink)  
Antiguo 04/02/2003, 13:32
 
Fecha de Ingreso: febrero-2003
Mensajes: 15
Antigüedad: 14 años, 10 meses
Puntos: 0
cluster: Antes de nada gracias por responder.
He mirado como dices las variables que me devuelve en ver...codigo y me las devuelve correctamente.
En cuanto a lo de la variable Register_globals del php.ini la tengo en ON.
El caso es que aunque falten algunas comillas se deberia de ver correctamente ya que en linux+php+mysql funciona correctamente, y me cambia al seleccionar una Base de Datos en el primer campo Select me introduce en el segundo campo Select sus tablas.
Es decir me ejecuta la funcion "opciones()"correctamente.
Sin embargo, bajo windows con IIS, php y mysql, me introduce todas las BD en el primer Select y en el segundo las tablas de la BD seleccionada por defecto . Pero si cambio de BD no me cambia las tablas, por lo que deduzco que no me entra en la funcion 'opciones()'.
y no se si es por algo del codigo o por la configuracion del PHP,
ya que no me da errores de codigo al abrir la pagina.
Si alguien que tenga windows, php y mysql pudiese probar este codigo y decirme si le funciona correctamente le estaria muy agradecido.
Salu2 y gracias por adelantado!!
  #4 (permalink)  
Antiguo 04/02/2003, 14:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tu problema parace ser con Javascript .. he probado tu código bajo IE 5.5 y Opera 7.0b2 en ambos funciona OK ..

(PHP 4.3.0+Apache 1.3x.+Mysql 3.x en Windows 98) ..

Pregunta en el foro Javacript si hay algun problema de "compatiblidad" con los objetos y manejo de propiedades q haces en tu funcion javascript (para eso .. con q les pongas el código que te genera PHP "estatico" sobra para que lo prueben .. ) .. Y revisa q navegador usas ...

Un saludo,
  #5 (permalink)  
Antiguo 04/02/2003, 17:21
 
Fecha de Ingreso: febrero-2003
Mensajes: 15
Antigüedad: 14 años, 10 meses
Puntos: 0
Yo tambien pienso que es del codigo javascript.
voy a darme una vuelta por el foro Javascript a ver si hay alguien tan enrollado como tu
muchas gracias de nuevo.
salu2 a to2!!
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 11:51.