Foros del Web » Programando para Internet » PHP »

Pasar variable php a javascript y recuperarla

Estas en el tema de Pasar variable php a javascript y recuperarla en el foro de PHP en Foros del Web. Buenos dias compañero!! Soy nueva en el foro, si veis cualquier cosa mal comentarmela yo intentare explicar mis dudas de la mejor forma posible y ...
  #1 (permalink)  
Antiguo 04/11/2005, 05:15
 
Fecha de Ingreso: noviembre-2005
Mensajes: 4
Antigüedad: 12 años, 1 mes
Puntos: 0
Pasar variable php a javascript y recuperarla

Buenos dias compañero!!
Soy nueva en el foro, si veis cualquier cosa mal comentarmela yo intentare explicar mis dudas de la mejor forma posible y poner el codigo de forma que sea facil de entender.
Despues de mucho tiempo leyendo y viendo mensajes expuestos en este foro, y de haberlo probado todo continuo si saber como pasar una variable que se ha generado en php a javascript y luego recuperarlo.
Yo estoy haciendo el proyecto final de carrera se trata de un programa que recoge los datos de una pda y a partir de ahi genera toda la contabilidad, facturas, albaranes.. etc
El problema me vino cuando fui a enseñarle el proyecto a mi tutor y me dijo que a la hora de borrar el precio de los gases (se trata de una empresa que vende gases) me deberia salir una ventana que me pregunte que si realmente estan seguros de borrarlo, como trabajo con php, mysql y html, estube buscando alguna funcion de php que me gestionara los popup, cosa que no he encontrado, por ello decidi recurrir a JavaScript y crear una funcion que me gestionara los popup, y gracias a este foro enseguida lo consegui.

Código:
<script language="JavaScript">
<!--

function confirmar() {
	var respuesta = confirm('Esta seguro de eliminar el precio del gas?');
	if (respuesta == true) {
	alert('Si estoy seguro');
	window.location.href = "BorrarPrecioGas.php?accion=borrar&$Id";

	} else {

	alert('No deseo cancelarlo ....');
	window.location.href = "BorrarPrecioGas.php?accion=no";
	}
}


//-->
Esta funcion me va de lujo, incluso he conseguido que php recupere la variable accion que la genero en javascript y la recupero en php con:

Código PHP:
$id_borrar$_GET['accion']; 
Mi problema es que para que php pueda borrar el gas de mysql necesito enviar desde php a javascript la variable $Id que es el identificador del gas que vamos a borrar.

Lo he intentado de mil formas pero nada, es imposible para mi, por que llevo 2 semanas con lo mismo y nada , y el problema es que no me dejan hacerlo de ninguna otra forma tiene que ser con este tipo de popup.

Código PHP:
print ("<td bgcolor=#FFCC99><center><a href=\"$pag?accion=borrar&id=$Id\" Onclick=\"javascript:mensaje()\">Borrar</a></center></td></tr>");                                                                                    
print ("<td bgcolor=#FFCC99><center><a href=\"javascript:confirmar(<?php echo "'$Id'";?>)\">Borrar</a></center></td></tr>");

print ("<td bgcolor=#FFCC99><center><a href=\"javascript:confirmar()\">Borrar</a></center></td></tr>");
Estas son unas de mil formas que he intentado.
De todas formas os pongo el codigo entero de la pagina :

Código PHP:
<?Php
  
require("aut_verifica.inc.php");
   
$nivel_acceso=3// Nivel de acceso para esta página.
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<style>

a{text-decoration:none}
a:hover{color:black}
}
BODY {
    SCROLLBAR-FACE-COLOR: #309EB6; SCROLLBAR-HIGHLIGHT-COLOR: #309EB6; SCROLLBAR-SHADOW-COLOR: #FFFFFF; SCROLLBAR-3DLIGHT-COLOR: #FFFFFF; SCROLLBAR-ARROW-COLOR: #FFFFFF; SCROLLBAR-TRACK-COLOR: #309EB6; SCROLLBAR-DARKSHADOW-COLOR: orange;
}
</style>


<head>
<title> Imprimir Gases / Modificar </title>

<script language="JavaScript">
<!--

function confirmar() {
    var respuesta = confirm('Esta seguro de eliminar el precio del gas?');
    if (respuesta == true) {
                    alert('Si estoy seguro');
                window.location.href = "BorrarPrecioGas.php?accion=borrar&$Id";
    } else {
        alert('No deseo cancelarlo ....');
        window.location.href = "BorrarPrecioGas.php?accion=no";
    }
}


//-->
</script>

</head>

<body bgcolor="#309EB6" text="#309EB6" link="#6633CC" alink="#6633CC" vlink="#6633CC">

<?php

$id_borrar
$_GET['accion'];
print(
"$id_borrar------------------------<br>");
$id$_GET['id2'];
/*print("$id---------1");*/

$pag=$_SERVER['PHP_SELF'];  // el nombre y ruta de esta misma página.

$db=mysql_pconnect('localhost','root','');

if (!
$db){
    
    print (
"No se ha podido abrir la base de datos,por favor prueba mas tarde.<br>/n");
        
    }
    
    
mysql_select_db('clientesprueba');


$query"select * from gases";
    
    
$result=mysql_query($query);
        
    
$k=0;    

while (
$Row=mysql_fetch_array($result)) {
                
    
$Gases[]=$Row[NomGas];  /*nombre gas*/
    
$IdGas4[]=$Row[IdGas4];
    
$k++;

     }
    
    
    

/*------------Buscamos el precio----------------*/


mysql_select_db('datos');

for (
$i=0;$i<$k;$i++) {
    
    
$IdGas=$IdGas4[$i];
    

    
$IdGas=trim($IdGas);
    
$Id=$IdGas;

$query"select * from egas where Idgaspre=$IdGas";


$result=mysql_query($query);
$num_results=mysql_num_rows($result);
$Row=mysql_fetch_array($result);

 
$Precio[]=$Row[Precio];


}    


/*-----------------------Imprimimos todo-----------------------*/
print ("<br>");
print (
" <font color=#FFFFFF size=5><b><center>.:Eliminar Precio:.</center></b></font>");

print (
"<br><br>");
print (
"<table border=1 cellspacing=0 cellpadding=4 bordercolor=#CCCCCC align=center>");
print (
" <tr bgcolor=#00CCCC><td><font color=#FFFFFF><b><center>Nombre Gas</center></b></font></td><td><font color=#FFFFFF><b><center>Precio Gas</center></b></font></td><td><font color=#FFFFFF><b><center><br></center></b></font></td></tr>");

for (
$i=0;$i<$k;$i++) {
    
    
$Id=$IdGas4[$i];

if(
$Precio[$i]){        
if (
$Gases[$i]) {
    
print (
"<tr><td bgcolor=#FFFFEA>$Gases[$i]</td>");

} else { print (
"<td bgcolor=#FFFFEA><br></td>");}


if (
$Precio[$i]) {
    
print (
"<td bgcolor=#FFFFEA>$Precio[$i] &euro;uros</td>");

} else { print (
"<td bgcolor=#FFFFEA><br></td>");}

if(
$Precio[$i]){
    
    

    
/*print ("<td bgcolor=#FFCC99><center><a href=\"$pag?accion=borrar&id=$Id\" Onclick=\"javascript:mensaje()\">Borrar</a></center></td></tr>");*/                                                                                    
/*print ("<td bgcolor=#FFCC99><center><a href=\"javascript:confirmar(<?php echo "'$Id'";?>)\">Borrar</a></center></td></tr>");*/
print ("<td bgcolor=#FFCC99><center><a href=\"javascript:confirmar()\">Borrar</a></center></td></tr>");

}else{  print (
"<td bgcolor=#FFCC99><br></td>");}

}
}
/*for*/

print("</table>");


if (
$id_borrar==borrar){
    
    print(
"esto si me lo hace bien, el resto no :( ");
    
if (isset(
$_GET["id2"])){
    

mysql_select_db('datos');
    

$egas="egas";
$id_borrar$_GET['id2'];
mysql_query("DELETE FROM $egas WHERE Idgaspre=$id_borrar");

header ("Location: $pag");
exit;

}

}else{ print(
"esto tambien me lo hace bien me falta, el id del gas");

}
?>

</body>

</html>

Lo que pretendo en ese codigo es que cuando javascript me envie accion si accion=borrar que me borre el gas y si es diferente (accion=no) que no borre nada, hasta ahi bien, pero cuando entra en el if de id2, al no llegarle el valor de id2 pues no lo puede hacer.

Bueno amigos espero que me podais ayudar (estoy segura de que si :D), muchisimas gracias por todo. Y espero haberme explicado mas o menos bien.

Por cierto Cluster tu autentificator es una maravilla, lo he utilizado en mi proyecto y he dejado el codigo a tu nombre.

Cuando acabe el proyecto colgare el codigo para quien le interese.

Muchas gracias
  #2 (permalink)  
Antiguo 04/11/2005, 06:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
estube buscando alguna funcion de php que me gestionara los popup, cosa que no he encontrado, por ello decidi recurrir a JavaScript y crear una funcion que me gestionara los popup, y gracias a este foro enseguida lo consegui.
PHP se ejecuta en el "lado del servidor" .. así que es imposible que encontrases algo en PHP al respecto .. los "PopUps" se crean en el "cliente" (en tu navegador) y se gestionan de la misma forma (vía javacirpt en el navegador ante enventos que -suceden- en el navegador .. ).

--------------------------

El problema que tienes también lo deberías resolver con Javascript ..

Puedes hacer dos cosas:
1) En tu rutina javascript de confirmación .. NO redirecciones ahí mismo sino que usa un "return":
Código PHP:
Onclick="return mensaje();\ 
Eso (bueno .. modificando algo tu función javascript) sólo hará que tu link se -siga- ejecutando o no ..

2) .. A tu actual código .. le pasas vía javascirpt a tu función el "ID" sobre el que actuar:

Código PHP:
print ("<td bgcolor=#FFCC99><center><a href=\"#\" Onclick=\"javascript:mensaje('".$Id."')\">Borrar</a></center></td></tr>"); 
Y tu función javascript .. toma dicho valor y compone tu URL vía javacript:

Código PHP:
<script language="JavaScript">
<!--

function 
confirmar(Id) {
    var 
respuesta confirm('Esta seguro de eliminar el precio del gas?');
    if (
respuesta == true) {
    
alert('Si estoy seguro');
    
window.location.href "BorrarPrecioGas.php?accion=borrar&id="+Id;

    } else {

    
alert('No deseo cancelarlo ....');
    
window.location.href "BorrarPrecioGas.php?accion=no";
    }
}


//--> 
En tu script BorrarPrecioGas.php .. recibiras dos variables:
$_GET['accion'] ... y $_GET['id'] para que lo gestiones como guestes ..

Revisa en el foro de javascript el uso correcto de lo que te menciono .. no estoy 100% seguro que sea así (sobre todo el primer caso ..) pero por ahí va la cosa.

Un saludo,
  #3 (permalink)  
Antiguo 04/11/2005, 07:40
 
Fecha de Ingreso: noviembre-2005
Mensajes: 4
Antigüedad: 12 años, 1 mes
Puntos: 0
Muchisimas gracias Cluster, eres mi idolo.

Todo lo que parece un mundo para mi, en un segundo me lo has solucionado y yo he estado 2 semanas dandole vueltas, leyendo y comentandoselo a todo el mundo, y no conseguia nada.

Espero algun dia poder estar a tu altura, aunque es muy dificil.

Un besazo

Cuelgo el codigo con todo modofocado por si a alguien le puede interesar.

Código PHP:
<?Php
  
require("aut_verifica.inc.php");
   
$nivel_acceso=3// Nivel de acceso para esta página.
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<style>

a{text-decoration:none}
a:hover{color:black}
}
BODY {
    SCROLLBAR-FACE-COLOR: #309EB6; SCROLLBAR-HIGHLIGHT-COLOR: #309EB6; SCROLLBAR-SHADOW-COLOR: #FFFFFF; SCROLLBAR-3DLIGHT-COLOR: #FFFFFF; SCROLLBAR-ARROW-COLOR: #FFFFFF; SCROLLBAR-TRACK-COLOR: #309EB6; SCROLLBAR-DARKSHADOW-COLOR: orange;
}
</style>


<head>
<title> Imprimir Gases / Modificar </title>

<script language="JavaScript">
<!--

function confirmar(Id) {
    var respuesta = confirm('Esta seguro de eliminar el precio del gas?');
    if (respuesta == true) {
                    alert('Si estoy seguro');
                window.location.href = "BorrarPrecioGas.php?accion=borrar&id="+Id;
    } else {
        alert('No deseo cancelarlo ....');
        window.location.href = "BorrarPrecioGas.php?accion=no";
    }
}


//-->
</script>

</head>

<body bgcolor="#309EB6" text="#309EB6" link="#6633CC" alink="#6633CC" vlink="#6633CC">

<?php

$id_borrar
$_GET['accion'];
print(
"$id_borrar------------------------<br>");
$id$_GET['id'];
print(
"$id---------1");

$pag=$_SERVER['PHP_SELF'];  // el nombre y ruta de esta misma página.

$db=mysql_pconnect('localhost','root','');

if (!
$db){
    
    print (
"No se ha podido abrir la base de datos,por favor prueba mas tarde.<br>/n");
        
    }
    
    
mysql_select_db('clientesprueba');


$query"select * from gases";
    
    
$result=mysql_query($query);
        
    
$k=0;    

while (
$Row=mysql_fetch_array($result)) {
                
    
$Gases[]=$Row[NomGas];  /*nombre gas*/
    
$IdGas4[]=$Row[IdGas4];
    
$k++;

     }
    
    
    

/*------------Buscamos el precio----------------*/


mysql_select_db('datos');

for (
$i=0;$i<$k;$i++) {
    
    
$IdGas=$IdGas4[$i];
    

    
$IdGas=trim($IdGas);
    
$Id=$IdGas;

$query"select * from egas where Idgaspre=$IdGas";


$result=mysql_query($query);
$num_results=mysql_num_rows($result);
$Row=mysql_fetch_array($result);

 
$Precio[]=$Row[Precio];


}    


/*-----------------------Imprimimos todo-----------------------*/
print ("<br>");
print (
" <font color=#FFFFFF size=5><b><center>.:Eliminar Precio:.</center></b></font>");

print (
"<br><br>");
print (
"<table border=1 cellspacing=0 cellpadding=4 bordercolor=#CCCCCC align=center>");
print (
" <tr bgcolor=#00CCCC><td><font color=#FFFFFF><b><center>Nombre Gas</center></b></font></td><td><font color=#FFFFFF><b><center>Precio Gas</center></b></font></td><td><font color=#FFFFFF><b><center><br></center></b></font></td></tr>");

for (
$i=0;$i<$k;$i++) {
    
    
$Id=$IdGas4[$i];

if(
$Precio[$i]){        
if (
$Gases[$i]) {
    
print (
"<tr><td bgcolor=#FFFFEA>$Gases[$i]</td>");

} else { print (
"<td bgcolor=#FFFFEA><br></td>");}


if (
$Precio[$i]) {
    
print (
"<td bgcolor=#FFFFEA>$Precio[$i] &euro;uros</td>");

} else { print (
"<td bgcolor=#FFFFEA><br></td>");}

if(
$Precio[$i]){
    
    

print (
"<td bgcolor=#FFCC99><center><a href=\"javascript:confirmar('".$Id."')\">Borrar</a></center></td></tr>");

}else{  print (
"<td bgcolor=#FFCC99><br></td>");}

}
}
/*for*/

print("</table>");


if (
$id_borrar==borrar){
    
    print(
"esto si me lo hace el resto no :(");
    
if (
$id){
    

mysql_select_db('datos');
    

$egas="egas";
$id_borrar=$id;
mysql_query("DELETE FROM $egas WHERE Idgaspre=$id_borrar");

header ("Location: $pag");
exit;

}

}else{ print(
"esto tambien me lo hace bien me falta el id del gas");

}
?>

</body>

</html>

Muchisimas gracias a todos.
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 17:10.