Mostrar registros en popup

Tengo un problema a la hora de mostrar unos registros... Me funciona bien si los
Listo en una página nueva, pero si los listo en un popup me salta un
Error que no entiendo... Te paso lo que tengo:
Esta es la función que abre el popup:
<script>
var popup = null;
function redoficial()
{
// Si el popup ya existe lo cerramos
if(popup!=null)
popup.close();
// Capturamos las dimensiones de la pantalla para centrar el popup
altoPantalla = parseInt(screen.availHeight);
anchoPantalla = parseInt(screen.availWidth);
// Calculamos el centro de la pantalla
centroAncho = parseInt((anchoPantalla/2))
centroAlto = parseInt((altoPantalla/2))
// dimensiones del popup
anchoPopup = 500;
altoPopup = 500;
// Calculamos las coordenadas de colocación del Popup
laXPopup = centroAncho - parseInt((anchoPopup/2))
laYPopup = centroAlto - parseInt((altoPopup/2))
// Definimos que página vamos a ver
pagina = "pagina5.php";
popup = window.open(pagina,"Imágenes","scrollbars=yes,stat
us=no,width=" + anchoPopup + ", height=" + altoPopup + ",left = " +
laXPopup + ",top = " + laYPopup);
}
</script>
en el php que envía la información tengo puesto:
<?php
include ('conexión.php');
if (!$conexión) {
die('No se puede conectar: ' . Mysql_error());
}
$con="SELECT Población FROM tblclientes2 GROUP BY Población";
$res=mysql_query($con,$conexión);
if(!$res){
echo "fallo: ".mysql_error()."<br>";
}
else{
echo "<form name='miformulario' method='post' onsubmit='redoficial()'>";
echo "<select name='select1' class='selección'>";
while ($fila=mysql_fetch_array($res)){
echo "<option value='".$fila['Población']."'>", $fila['Población'], "</option>";
}
echo "</select>";
echo "<br>";
echo "<br>";
echo "<input type='submit' value='enviar' onclick='javascript:redoficial()'>";
echo "</form>";
}
?>
y en pagina5.php que es donde me tiene que listar los registros tengo:
<?php
include 'conexión.php';
$sql="SELECT * FROM tblclientes2 WHERE (Población='".$_POST['select1']."')";
// echo "sql: $sql<br>";
$res = mysql_query($sql, $conexión);
if(!$res){
echo "fallo: ".mysql_error()."<br>";
}
else{
echo "<table border='0'>";
echo "<tr>";
//echo "<td>RAZÓN SOCIAL</td>";
//echo "<br>";
//echo "<td>DIRECCIÓN</td>";
//echo "<td>TELÉFONO</td>";
echo "</tr>";
while ($fila = mysql_fetch_assoc($res)){
// echo "<tr class='celdacolor'>";
//echo "<td class='fila'>".$fila['Razón
Social']."</td><td>".$fila['Dirección']."</td><td>".$fila['Teléfono']."</td>";
echo '<tr><td class="titulo">'.$fila["Razón Social"].'</td>';
echo '<tr><td class="datos">'.$fila["Dirección"].'</td>';
echo '<tr><td class="datos">'.$fila["Población"].'</td>';
echo '<tr><td class="datos">'.$fila["Teléfono"].'</td>';
echo "<tr>";
echo "<tr>";
echo "<tr>";
echo '<tr><td></td></tr>';
// echo "</tr>";
}
echo "</table>";
}
?>
el fallo que me salta es este:
Undefined index: select1 in C:\wamp\www\puntovidrio\pagina5.php on line 12
en la linea 12 de pagina5.php tengo:
$sql="SELECT * FROM tblclientes2 WHERE (Población='".$_POST['select1']."')";
Por que me salta este error en el popup... Si lo hago sin popup me
Lista los registros sin problemas, pero al abrir el popup me da este
Error.

2 Respuestas

Respuesta
1

Amigo lo mas probable es que te este tomando la llamada del popup que haces en el onclick y no en el submit, no se porque pusiste dos, mejor quita la del onclick, también verifica las variables del script y preferiblemente inicializalas todas así como hiciste con var popup=null; me refiero a altoPantalla, anchoPantalla, etc. Inicializalas arriba de la misma manera var anchoPantalla=0; y así para todas.

Por lo general este undefined index no es un error sino una advertencia de que algo no esta funcionando del todo bien.

Gracias amigo.....pero no funciona como dices, he inicializado las variables a 0 y he quitado el onclick y sólo lo he dejado así:

echo "<form name='miformulario' method='post' onsubmit='redoficial()'>";

me sigue dando el mismo error y no me muestra los registros....el error es:

Notice: Undefined index: select1 in C:\wamp\www\puntovidrio\pagina5.php on line 12

no se por que me da ese error si le digo que abra la pagina pagina5.php en el popup....

Creo que el onsubmit tiene que regresar un valor, deja el que tenias en el botón onclick dejándolo con submit y revisa también la configuración del explorador a ver si esta bloqueando las ventanas emergentes, me avisas amigo

hola ....pues va a ser que no...no funciona tampoco.....me sigue dando el mismo error...el explorer no bloquea los popus pues el popus si que se me abre con las medidas que le digo y en la posición que le digo, el popup se me abre pero en el mismo popup me aparece el error que te digo antes.

Coloca al principio del php en el popup esto:

ini_set('error_reporting',0);

De todas formas quiero que mires si en verdad todas tus variables fueron inicializadas al principio, en ambos archivos.

pues no puede ser.....he colocado la linea que me dices ini_set('error_reporting',0); y ahora no me sale error ninguno, pero tampoco me muestra nada....no me lista los registros...

Las variables las tengo incializadas en el script a 0

var popup = null;
var altoPantalla=0;
var anchoPantalla=0;

El popup me lo muestra bien con las dimensiones especificadas y centrado en la posición que le digo, pero no me muestra registro alguno.....sin embargo con action='pagina5.php' si que me muestra los registros pero en una página nueva.

en la pagina5 inicializa una variable que se llame $poblacion=$_POST['select1'];

luego cambia el código así

$sql="SELECT * FROM tblclientes2 WHERE poblacion="'$poblacion'"";

tampoco funciona....

¿Cuándo te refieres a "imágenes" en el AS a que te refieres exactamente?

que imágenes?....el problema es con el popup que no muestra los registros de la tabla, sin embargo si los mando a una pagina nueva si que me lista los registros.....

Ensayemos desde el principio con el código un poco mas básico a ver si funciona, cambia tu formulario por uno así:

echo "<form action="pagina5.php" target="popup" method="post" onsubmit="window.open('', 'popup', 'width = 500, height = 500')">";
echo "<select name='select1' class='selección'>";
while ($fila=mysql_fetch_array($res)){
echo "<option value='".$fila['Población']."'>", $fila['Población'], "</option>";
}
echo "</select>";
echo "<br>";
echo "<br>";
echo "<input type='submit' value='enviar'>";
echo "</form>";

No necesitaras el java script, me avisas como te sale

me da un error de sintaxis en la line 127:

echo "<form action="pagina5.php" target="popup" method="post" onsubmit="window.open('', 'popup', 'width = 500, height = 500')">";

he intentado quitarle comillas, cambiarlas por simple y no hay manera

Gracias amigo, ya lo he solucionado, gracias a ti sobre todo y también a Mr. google he podido encontrar un forma de hacerlo y que me salga.

Un saludo y mil gracias.

Respuesta
1

Que tal buenas tardes e puedes mandar el archivo a [email protected] para darle una revisada

el fichero que tengo es el que te he detallado más arriba...tal cual, pues hice un copy/paste, luego está el css y el conexión.php que no influyen para el problema.....se trata de un select que recoge el campo Población de una tabla llamada tblclientes2 de una bd "puntovidrio"....esto me lo hace bien, selecciono una población y me tiene que abrir un popup con los datos de los clientes Nombre, dirección y población......esto me lo hace bien si en lugar de un popup le digo que me los liste en una pagina nueva sin popup, sin embargo, al decirle que me los liste en un popup me salta el error anterior......

¿donde puede estar el fallo?

Que tal perdón por tardar con mi respuesta no me encontraba en la oficina

el problema o el error que te arroja es por que no encuentra esta variable $_POST['select1']

Esto puede pasar por dos cosas

1 (y la menos probable) que hayas escrito mal el nombre de la variable

o

2.- Que no este en este ámbito, vaya deja me explico si la pagina se llama a si misma no se debería de usar así sino con un isset(<var>) o si es de otra pagina no se esta enviando correctamente por el método post ya que no se esta alojando en el arreglo

Espero te sea de ayuda de no set así dime para que encontremos una solucion

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas