Foros del Web » Programando para Internet » PHP »

Problema: codigo no hace nada!

Estas en el tema de Problema: codigo no hace nada! en el foro de PHP en Foros del Web. Hola, antes que nada discupen el título pero no sabía que poner. El tema es que tengo una ventana popup que se abre al hacer ...
  #1 (permalink)  
Antiguo 10/04/2006, 06:41
Avatar de chepi  
Fecha de Ingreso: abril-2005
Ubicación: Posadas - Misiones
Mensajes: 116
Antigüedad: 12 años, 8 meses
Puntos: 1
Pregunta Problema: codigo no hace nada!

Hola, antes que nada discupen el título pero no sabía que poner.
El tema es que tengo una ventana popup que se abre al hacer click en un link de un catalogo de productos. En este popup yo debo ingresar la cantidad de articulos que quiero, y así agregar al carrito. El problema es que no se bien cómo trabajar con funciones y NO ME EJECUTA NADA.
Si le pueden echar una miradita les agradecería mucho.

<?
session_start();
extract($_REQUEST);
$id = $_GET['id'];
include ("conexion.php");
$conexion= conectar();

?>
<html>
<head>
<title>PRODUCTOS AGREGADOS AL CARRITO</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table>
<tr>
<td width="136" align="center">
<input type="text" name="cantidad" size="8">
</td>

<td align="center"> <div align="center">
<input type="submit" name="Agregar" value="Agregar" OnClick="agregar($cantidad, $id)">
</div>
</td>
</tr>
</table>
<?
function agregar($cantidad, $id)
{
if(!$cantidad)
{
$cantidad=1;
}
$qry=mysql_query("select * from perfiles where id= '$id'", $conexion)or die (mysql_error());

$row=mysql_fetch_array($qry);

$carro=$_SESSION['carro'];

$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cant idad,'cod_perfil'=>$row['cod_perfil'],'id'=>$id);

$_SESSION['carro']=$carro;


echo "<script>window.opener.location.reload(); window.close();</script>";exit;
}
?>

</body>
</html>
  #2 (permalink)  
Antiguo 10/04/2006, 09:20
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 11 años, 11 meses
Puntos: 1
El problema es que estas confundiendo cliente con servidor. El codigo PHP se ejecuta del lado del servidor, por lo que no se puede ejecutar código PHP (en tu caso la función agregar) en respuesta a un evento producido el el cliente (tu navegador). Una forma de hacer lo que querés es enviar el formulario a una página que procese los datos (carge la cantidad en el carrito) y luego utilice código javascript para cerrar la ventana.

formulario.php
Código PHP:
<?
$id 
$_GET['id'];
?>
<html> 
<head> 
<title>PRODUCTOS AGREGADOS AL CARRITO</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="agregar.php?id=<?=$id?>" method="post">
<table>
<tr>
<td width="136" align="center">
<input type="text" name="cantidad" size="8">
</td>
<td align="center"> <div align="center">
<input type="submit" name="Agregar" value="Agregar" >
</div>
</td>
</tr>
</table>
</form>
</body> 
</html>
agregar.php
Código PHP:
<?
session_start
();
include(
"conexion.php");
$id $_GET['id'];
$conexion conectar();
$cantidad $_POST['cantidad'];

if(!
$cantidad)
{
$cantidad=1;
}
$qry=mysql_query("select * from perfiles where id= '$id'"$conexion)or die (mysql_error());

$row=mysql_fetch_array($qry);

$carro=$_SESSION['carro'];

$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cantidad,'cod_perfil'=>$row['cod_perfil'],'id'=>$id);

$_SESSION['carro']=$carro;


echo 
"<script>window.close();</script>";
?>
Algo así mas o menos.
Otra cosa: ¿para que usás la línea "extract($_REQUEST)"?¿Lo usás en otros scripts? Si no me equivoco eso es casi lo mismo que tener activado "register_globals", lo que es muy peligroso pensando en la seguridad de tu script.
Saludos.
__________________
¿Se me entiende la letra?
  #3 (permalink)  
Antiguo 11/04/2006, 14:19
Avatar de chepi  
Fecha de Ingreso: abril-2005
Ubicación: Posadas - Misiones
Mensajes: 116
Antigüedad: 12 años, 8 meses
Puntos: 1
Jorgito, aun asi no hace nada!.
En $cantidad no me trae ningún valor y tampoco carga el vector.

Qué puedo estar haciendo mal?
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 23:05.