Foros del Web » Programando para Internet » PHP »

php + javascript

Estas en el tema de php + javascript en el foro de PHP en Foros del Web. hola: tengo una variable en javascript y quiero asignarla a una variable php. variable javascript :::::::::::::::: pedro='hola me llamo pedro'; y quiero hacer esto: $juan=pedro; ...
  #1 (permalink)  
Antiguo 02/06/2005, 03:54
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
php + javascript

hola:

tengo una variable en javascript y quiero asignarla a una variable php.

variable javascript:::::::::::::::: pedro='hola me llamo pedro';

y quiero hacer esto:

$juan=pedro;

gracias

un saludo
__________________
Muchas gracias, saludos.
  #2 (permalink)  
Antiguo 02/06/2005, 04:04
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Hay que entender que PHP trabaja del lado del servidor... así que para asignarle un valor a una variable tendrás que actualizar al menos.. y la forma es pasar tu variable JS por URL, así que vé como generar con JS algo como:pagina.php?varjs=valor_varjs y con PHP lo recojes con $_GET: $juan=$_GET['varjs'];

Tema muuuy tratado... ¿qué haz encontrado?... aclarar que no puedes pasar espacios por URL, sustitúyelos por %20.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 02/06/2005, 04:58
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
no me funciona...
a ver te cuento lo que hago:
a esta funcion javascript la llamo al pulsar sobre un boton
function prueba(){
var pedro=new Array();
pedro=(1,2,3,4,5,6,7,8,9);
document.form_envio.submit();
}

y para enviar la variable javascript y recogerla mediante post utilizo este form:

<form name="form_envio" method="post" action="modificar.php?prueba=pedro">
</form>

tambien probe a enviarla:

<input type="hidden" name="prueba" value="pedro">

y lo recogo asi:

$valores=$_POST["prueba"];
echo $valores;

en el primer caso no me devuleve nada(en la barra me pone: modificar.php?prueba=pedro), en el segundo me devuelve pedro( me toma el value como un texto no como una variable javascript.

gracias

un saludo
__________________
Muchas gracias, saludos.

Última edición por xias; 02/06/2005 a las 05:08
  #4 (permalink)  
Antiguo 03/06/2005, 19:06
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
ooooohhh!!!!.. esque entonces no quieres pasar un valor JS... quieres pasar todo un arreglo???... mmm.. primero habría que reguntar el "¿para qué?".

Ahora bien.. por parte de JavaScrip tienes el error de que... no puedes "decir" simplemente value="pedro" ... lo que estás pasando como valor ahí es simplemente la palabra "pedro"... de hecho ni JS es eso, eso es simple HTML...

Para asignar un valor con JS necesitas hacer referencia hacia dónde va dicho valor.. en tu caso sería algo como:
Código:
document.form_envio.prueba.value='valor'
y no solo eso... tendrías que darle valor cuando se efectue un evento... (dar click en botón, al cargarse la página, al submit() del formulario --ten cuidado qué es primero--, etc.)...

Concretamente... tienes errores JS... y este foro es de PHP por lo que el tema no correponde... (busca, consulta las FAQ y en su defecto pregunta en dicho foro).

Ya con lo que consierne a PHP... perfecto, manejarás un formulario... y de acuerdo, un formulario puedes recojerlo con $_POST ó $_GET según el method de dicho formulario... sabrás que GET te envia los valores por URL...

Pués bien, en principio no puedes poner un action="pagina.php?algo=valor"... solo se enviarán los valores quecontenga tu formulario.. así que para lo que quieres puedes agregar otro elemento del formulario de manera oculta:
Código HTML:
<input type="hidden" name="algo" value="valor"> 
así de simple.. y ya recojes como lo querías hacer...

Ahora.. ¿por qué no mencioné que podías manejar $_POST para recojer el valor de una variable JS????.. simple... lo que estás haciendo (o lo que pretendes hacer) no es recojer ese valor directamente, lo que haces es asignarle ese valor a un elemento de un formulario y enviar ese formulario.. entonces, al final, lo que recojes es el formulario... no la variable directamente ... cuestión de enfoques y si este método te sirve.. pués adelante.

... pero volvemos al incio.. ¿qué quieres hacer???... en principio no tiene sentido querer pasar todos los valores que tú mismo predefines... no le hayo el para qué?... si esos valores no serán variables ¿por qué no asignarselos directamente a PHP??... si los vaz a incluir en otra página ¿por qué no hacer un archivo .js aparte e "incluirlo" con JS???... ... solo pido expliques cuál es el objetivo... quizá se te den alternativaz... por lo demás, si quieres seguir con lo mismo... primero vé cómo con JS puedes asignar todo un arreglo a un solo campo... ó crear N campos según N contenido de tu arreglo .. entonces recojerías con un foreach(): www.php.net/foreach

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 13/06/2005, 13:02
 
Fecha de Ingreso: junio-2005
Mensajes: 1
Antigüedad: 12 años, 6 meses
Puntos: 0
Exclamación Php + Javacript

Hola, gracias por adelantado, necesitaría que alguien me echara una mano con este problema con el que me he quedado atascada.

El problema está relacionado con el paso de variables entre JavaScript y PHP o PHP y Javascript.

En un principio solo usaba PHP, pero vi conveniente el uso de JavaScript para crear unas ventanas de alerta 'alert'.

El problema concreto es:
Tengo un enlace que manda por POST unas variables a la misma página ($pag hace referencia a la misma página).

<a href="$pag?accion=borrar&id=$resultados[id_tfc_ofertado]&estado=1" onClick="BorraTfc()" name="$resultados[titulo]">

Por medio de estas variables, accedo a un if que realizará unas funciones concretas (concretamente, borrará un registro concreto de una base de datos), de esta manera :

if (isset($_GET['id']))
{
if ($_GET['accion']=="borrar")
{
if($_GET['estado']=="1")
{
//Aqui van las funciones necesarias para borrar el registro de la base de datos( esto no es relevante para la FAQ)
}
header ("Location: $pag");
exit;
}

// .......
}

El problema surge cuando se me ocurre la idea de pedir la confirmación antes de realizar esta funcion(confirmacion antes del borrado del registro de la base de datos;es decir, de que se manden estas variables o no) mediante una funcion JavaScript que creara un mensaje de confirmación. Esta funcion javascript se ejecutara cuando se haga click en el link por medio del evento onClick.
No se si habría alguna manera de cambiar el href al que va dirigido cuando se pulse cancelar o retornar algun valor para que dependiendo de el se envien o no las variables con el href.

Yo había pensado algo parecido a esto, pero no se como acceder a estas variables que se retornan.

function BorraTfc()
{

var enviar = window.confirm('Se va a borrar un TFC de la Base de Datos');
if(!enviar)
{
return 1
//para que no borre
}
else
{
return 0
//para que borre
}
}

Muchas gracias a todo tipo de respuesta o incluso a otras alternativas.

María
  #6 (permalink)  
Antiguo 13/06/2005, 22:21
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 12 años, 7 meses
Puntos: 1
como JS se ejecuta del lado del cliente la confirmacion se hace antes de que se envie el formulario.
Entonces si no se desea enviar el formulario lo resetea, y si lo desea enviar, se enviamos.

function BorraTfc()
{

var enviar = window.confirm('Se va a borrar un TFC de la Base de Datos');
if(!enviar){
//para que no borre
document.formulario.reset();
}else{
//envio el formulario
//para que borre
document.formulario.submit();
}
}



espero que te sea util.
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:59.