Pasar variables de ASP o PHP hacia Javascript o viceversa

Saludos, Me gustaría saber si se puede pasar parámetros de PHP o ASP a Javascript o viceversa.

La FAQ Pasar variables de ASP o PHP hacia Javascript o viceversa tiene

Pertenece a la categoría:
Pregunta
Saludos,



Me gustaría saber si se puede pasar parámetros de PHP o ASP a Javascript o viceversa.
Respuesta de Rubén Alvarez
Dado que PHP y ASP son lenguajes de lado servidor y Javascript es un lenguaje de lado cliente, el orden en el que estos dos lenguajes serán ejecutados será siempre el mismo: primero PHP (o ASP) y luego Javascript.



Así, cuando un usuario envíe una petición al servidor, el servidor va a tomar el archivo PHP (o ASP) y va a ejecutar su contenido de modo a producir una pagina comprensible por el navegador. Por supuesto, en esta pagina enviada al navegador puede haber cualquier script de lado cliente que ya sea Javascript o VBScript.



Esto quiere decir que siempre será posible modificar nuestros scripts de lado cliente pasando parámetros desde un lenguaje de lado servidor pero, por el contrario, no podremos alterar el código del lenguaje de lado servidor a partir de los parámetros definidos por un lenguaje de lado cliente.



Dicho de otra forma, podemos pasar variables de PHP (o ASP) hacia un codigo Javascript residente en la misma pagina. Sin embargo, el paso inverso no es posible.



Para pasar los parámetros, lo haremos de la misma forma que hacemos para el codigo HTML, es decir, embebiendo en nuestro codigo Javascript comandos echo (en PHP) o métodos Response.Write (en ASP).




Para ASP





<script>


var variableServidor = <%=variableServidor%>


</script>





Para PHP





<script>


var variableServidor = <?echo $variableServidor;?>


</script>
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios

Fabian Gonzalez

05/12/2003
Si es posible pasar variables desde javascript a php o asp, ya que javascript permite modificar campos de formularios, creamos un campo oculto, colocamos el valor y al usuario hacer submit podemos coger el valor desde php/asp

Sergio

26/12/2003
No solo eso del campo oculto si no que ademas podemos armar un link segun deseemos con javascript y tomar los datos de la url

Ximo

20/2/2004
He probado las sintaxis que aqui mostrais,y no me ha funcionado, y he probado esta otra y la verdad si que ha funcionado.

var url='<,? echo $url?>';

Covi

08/6/2004
Vamos a ver, eso ...bueno, es pasarles las variables pero no directamente como preguntaban, además se indica ( en la misma página ).

Así, NO estás pasando variables Javascript a PHP o ASP, las variables que reciben son $_POST_VARS, variables de formulario o en la segunda respuestas $_GET_VARS a través del link, otra cosa es el origen de esas variables ya sea generado con Javascript o lo que sea.

Así que NO, no se pueden pasar variables de JavaScript a un lenguaje del lado servidor XD, y como preguntaban, nunca directamente a través del mismo script, obviamente, porque se ha de ejecutar el script del lado servidor para trabajar con unas variables y luego trabajar en el lado cliente con las de Javascript por ejemplo ;).

Patricio

02/8/2004
No solo crear el formuliario con las variables que queramos pasar a php o asp ademas podemos mandarcelas al servidor usando document.form.submit();

José Anacreonte Mellanes Reyes

21/10/2004
Si no hay un método para pasar variables desde JavaScript hacia ASP o PHP (es decir, hacer que una variable en ASP o PHP tome el valor de una variable de JavaScript), puedes intentar usar Cookies para intercambiar valores entre aplicaciones. El único defecto de esta solución es que no todos los navegadores soportan el uso de cookies.

Samuel Angel Herbas Gonzales

11/1/2006
/* Variables PHP usadas en JavaScript*/
/* El ejemplo que intento mostrar es sobre un menu que esta hecho en JavaScript pero necesito crearlo dinamicamente recorriendo mi BD desde PHP. Todos sabemos que PHP trabaja desde el lado Servidor y JavaScript lo hace desde el lado cliente, por lo tanto desde el lado cliente no podemos usar directamente una variable creada en PHP. Pero todo tiene solucion, porque no le pasamos a JavaScript todo ya hecho?. Eso se hace creando desde PHP Script para JavaScript y porsupuesto ahi podemos utilizar nuestras variables en PHP, el resultado se tiene que el codigo resultante para JavaScript sera una pagina con los varores de fijos de nuestras Variables incluidas creadas en PHP. Vea por favor lo que hago con mis variables $Cad1 y $Cad2. (Esta tecnica me costo mucho desarrollarla y entenderla, por eso quiero compartirala...*/

<?
include ("coneccion.php");
$res_area=mysql_query("SELECT * FROM menus WHERE nivel='1'",$link);

while ($row_area=mysql_fetch_array($res_area)){
$descrip = $row_area['des'];
$cad1 = "<script> it=s0.addItem(3,4,5,'$descrip',n,n,'','http://www.yahoo.com',n,n,n,'http://www.yahoo.com',n,0,0,2,0,'0','','');</script>";
echo "$cad1";
/* Vea que al imprimir $cad1 estoy generando un Script en JavaSccript pero con mi variable $descrip incluida. Lo mismo hago con $Cad2 */

$cad2 = "<script> var s1=AdicionadSubmenu(0,0,-1,2,0,0,0,2,2,1,0,n,n,100,0); </script>";
echo "$cad2";
$codmay = trim($row_area['codigo']);
$res_grupo=mysql_query("SELECT * FROM menus WHERE codmay=$codmay and nivel=2",$link);

while ($row_grupo=mysql_fetch_array($res_grupo)){
$descrip = $row_grupo['des'];
$enlace = $row_grupo['enlace'];
$cad2 = "<script> it=AdicionaItem(3,4,5,'$descrip',n,n,'','$enlace',n,n,n,'$enlace',n,0,0,2,0,'0','','');</script>";
echo "$cad2";
}
}
?>

Raul

06/6/2006
Que hay de pasarse valores via cookie, las cookies son accesibles dede cualquiera de los lenguajes...

kratoxx, J. Gerardo Ramirez Hernandez

30/6/2006
Con tecnologías como AJAX se puede implementar un paso de variables vía POST o GET desde un script java pricipal hacia php/asp, sin recargar la página. Obviamente, el regreso también puede implementarse como un flujo de datos que hay que formatear para asignar a variables locales en el script principal.
SALUDOS!

Dario Cortes

25/9/2006
Vi este foro y me puse a trabajar en el y encontre gracias a otros foros la manera de pasar variables de javascript a php

ejemplo

Necesitaba cargar una consulta a la bd dependiendo de lo que existiera en una lista ( list/menu), pero tenia ese problema y la solucion es esta

en el select

<select name="titulos" size="7" class="textos" onChange="datos();">

llamamos una funcion en javascript para revibir el valor de el para filtrarlo en la consulta

javascript:

<script>
function datos(){
var variable = window.document.examenes.titulos.value;
pagina="agexamen.php?consulta="+variable;
window.location = pagina;
}
</script>

y eso seria todo

espero ayudarle sino escribanme
cortes.dario@gmail.com
y les enviare el codigo completo

aios :)

Fernando

04/12/2006
Saludos a todos, no soy gran experto en programacion ni nada parecido pero yo he encontrado una manera facil de pasar variables de Javascript a PHP desde hace algun tiempo, una vez se me olvido como hacerlo pero ya lo recurdo y buscando esa manera encontre este foro y quisiera contribuir, la forma en que lo hago es la siguiente:

<?php
$a= '<script language="javascript" type="text/javascript">document.write("hola");</script>';
echo $a." esta es una variable en PHP";
?>

algunos pensaran que lo que se imprime es el javascript por lo que le concatene un mensaje si quieren ponganle comentarios al echo y veran que no imprime nada lo cual confirma que efectivamente la variable esta en PHP
SALUDOS A TODOS

Fernando

04/12/2006
<?php
$a= '<script language="javascript" type="text/javascript">document.write("hola");</script>';
echo $a."asdasd";
?>
espero que les sirva

Roberto Loeza

12/1/2007
Hay que tener en cuenta que como dice en el articulo, el orden en que se ejecutan los scripts. Si bien es cierto que para pasar variables de ASP a Javascript es muy simple, con un poco de practica se pueden pasar variables de Javascript a traves de un Form o desde la URL, a los Scripts y ejecutarse de nuevo. Para pasar variables de ASP a Javascript basta con

<%
dim asp_var
asp_var="Desde ASP"
%>
<script>
var javascript_var
javascript_var='<%=asp_var%>'
javascript_var=javascript_var+" Hacia Javascript"
document.write(javascript_var)
</script>

Resulta muy Interesante el codigo generado, que es completamente comprensible por alguien que conozca algo de Javascript

Por Otro Lado el proceso inverso es bastante complejo, el objetivo es enviar nuestras variables de javascript a campos de Formularios que pueden ser facilmente recogidos por ASP/PHP

<%
dim var_asp
var_asp=request.form("texto")
var_asp=var_asp&" Hacia ASP"
response.write var_asp
%>

<script>
var javascript_var;
javascript_var="desde Javascript"

function post_back(){
document.forms[0].texto.value=javascript_var
document.forms[0].submit()
}

</script>
<input type="button" value="Enviar" onClick="post_back()">

<form method="post">
<input type="hidden" name="texto">
</form>

tambien se pueden pasar a traves de la URL con window.location desde Javascript. ademas sepueden pasar parametros con este metodo

<%
dim var_asp
var_asp=request.querystring("texto")
var_asp=var_asp&" Hacia ASP y u parametro "& request.querystring("param")

response.write var_asp
%>
<script>
var javascript_var;
javascript_var="desde Javascript"

function ir(javascript_param){
window.location=window.location + "?texto="+ javascript_var + "&asp_param=" + javascript_param
}

</script>

<a href="javascript:ir('parametro')">

Cabe Recalcar que cuando pasas variables por un form (primer metodo) las variables las recoges con request.form (HTTP_POST_VARS en PHP), y cuando las pasas por la url (segundo metodo) las variables la recoges con request.querystring (HTTP_GET_VARS en PHP)

Roberto Loeza
roberto.loeza@imss.gob.mx

Jose Luis

17/2/2007
Hola para capturar las variables en javascript usar esto:

cadVariables = location.search.substring(1,location.search.length);

Carlos

08/3/2007
Mi aporte...

<?
$variable_php="TEST";
echo '<script languaje="JavaScript">
function test(){
var varjs="'.$variable_php.'";
alert(varjs);
}
</script>';
?>
<p onclick="test();">TEST</p>

Mónica

04/10/2007
Ni lo uno ni lo otro, este es el código que funciona
<? $variable_php="monny"; ?>
<script language="javascript">


var varjs="<? echo $variable_php ?>";


alert(varjs);


</script>

Gabriel

23/10/2007
La opnion de monica funciona perfectamente.
gracias.

----------------------------
esto lo coloco unicamente para las personas que buscan lo mismo que nosotros en este articulo

"no esta definido"
"php a javascript"
"javascript a php"
"variables php a javascript"

--- el resto sera tarea de los motores de busqueda

Heber Alejandro Arce Sanchez

30/10/2007
Hola, saludos...

Mi comentario es que efectivamente no se pueden pasar variables de javascript a php, por el orden en que son ejecutados, la forma que proponia fernando esta incorrecta, ya que al hacer esto:

$a='<script languaje=....';
echo $a;

es lo mismo que hacer:

echo "<script languaje=....";

de esta forma no pasamos ningun valor a alguna variable, solo estamos ejecutando un script de java, atravez de un echo...

andres

19/11/2008
yo lo que hago para pasar las variables de asp a javascript es lo siguiente.
dentro del head creo el escript que contendra las variables
<head>
<script type="text/javascript">
var variable_js;
</script>
</head>

Dentro del body creo variables html (los inputs de tipo oculto) con el valor que necesito o en su caso la respuesta de alguna consulta como por ejemplo el id de alguna tupla en una base de datos:

<input type="hidden" id="hidden1" value=<% = variable_ASP %> />
o
<input type="hidden" id="hidden1" value=<% = Request.Form("valorRecibido") %> />
o
<input type="hidden" id="hidden1" value=<% = oRS(0) %> />

despues de eso, coloco otro poco de codigo javascript (este ya dentro del body, ensegida despues de haber creado el hidden) asignandole a la variable de javascript el valor del hidden..

<script type="text/javascrip">
variable_JS=document.getElementDyId('hidden1').value;
</script>

y eso es todo lo que hago. lso hidden los creo en forma dinamica en respuesta al codigo asp, esto es con ayuda de los if, then, else, asi tambien dentro de estos quedan los fragmentos de codigo de javascript.

para alguna pregunta consultarme a mi correo
malandres85@yahoo.com.mx

vegesoft

16/4/2009
sintaxis
a mi no me sirvio el ejemplo pues es script no me valio para mostrar algun resultado , lo correcto es poner
var bandera = "<?php echo $var_bandera ?>";

irene

04/12/2009
Paso de variable de javascript a ASP con Ajax
Hola,
He visto muchos comentarios a este respecto. Muchos hablan de que se puede hacer facilmente con AJAX pero no aportan ejemplo y no tengo ni idea de porque no me funciona.
Mi caso es el siguiente:
Tengo un javascript que quiere mandar la variable params a ASP:
params="midprovincias=28"

http.open("POST", url, true);

//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {//Call a function when the state changes.
//// if (http.readyState == 4 && http.status == 200) {
//// alert(http.responseText);
//// }
}
http.send(params);



En el lado del servidor, en el método Page_Load pongo lo siguiente:

var mapaprovincia;
mapaprovincia = Request.Form["midprovincias"];


Y no recoge la provincia 28, ¿Que estoy haciendo mal??
Muchas gracias!!

Karynilla

23/12/2009
Varible vacia en script
Hola que tal, estoy empezando con esto, al hacer la conexion desde ASP a la BD si regresa el valor, pero ya cuando lo trato recuperar en javascript esta vacio, saben que me falta, anexo codigo prueba.
Gracias por su ayuda.

<%
option explicit
session.abandon
Dim conn, rst, sql
if (request("txt_NumeroNomina") <> "" and request("password") <> "") then
set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source="&Server.MapPath ("IVIImplementacion.accdb")&";"
set rst=Server.CreateObject("ADODB.Recordset")
sql="Select NoNomina,Password,ciudad,puesto from T_Responsable where NoNomina=" & request("txt_NumeroNomina")
rst.Open sql, conn, 1
if rst.eof = false then
response.write rst.fields("ciudad")
End if
rst.Close
conn.Close
set rst=nothing
set conn=nothing
End if
%>

<script language="javascript">
function validacion() {
var nomina=<%=nomina%>
if (document.Ingreso.txt_NumeroNomina.value == "" || isNaN(document.Ingreso.txt_NumeroNomina.value)) {
alert ("Debes indicar tu número de nómina");
document.Ingreso.txt_NumeroNomina.focus();
}
else if (document.Ingreso.Password.value == "" || document.Ingreso.Password.value.length > 8) {
alert ("Debes indicar el password, máximo 8 caracteres");
document.Ingreso.Password.focus();
}
// else {document.write (nomina)} AQUI REGRESA VALOR VACIO
}
</script>

jeremiselxi

09/3/2010
hola tengo un problema
tengo un problema y es el siguiente, yo tengo una pagina con tres text, en la cual quiero cambiar el password usando php y javascript pero no me sale. les dejo el ejemplo


<html>
<head>
<title>cambiar password</title>
<!-- se asigna la variable php y se le pasa valor de una contraseña. -->
<?php $variable_php="090887"; ?>
<script language="javascript">
function pass() {
//se pasa la variable php a la variable javascript
var varjs="<?php echo $variable_php ?>";
//se confirma si lo que esta en la variable javascript es igual a lo que digite en el primer text
if (varjs==form1.actualpass.value)
{ // si es igual, se confirma los dos text siguientes para verifica si lo que esta escrito es correcto
if (form1.newpass.value==form1.cpass.value)
{ //desde aqui................................................................................
//si es asi se pone el mensaje siguiente
alert("Password cambiado exitosamente");
// hasta aqui esta todo bien. el trozo siguiente es el codigo que no me funciona.
// mi idea es la de pasar a la misma variable php lo que esta en el form1.newpass.value por medio de javascript
<?php $variable_php = '<script language="javascript" type="text/javascript">document.write(form1.newpass.value);</script>';?>
//luego pasar la variable php a la javascript
varjs="<?php echo $variable_php ?>";
// y luego mostrar el mensaje.
alert("El nuevo password es ",varjs);
//hasta aqui................... es el problema, todo esta bien hasta el primer mensaje.
}
else
{
alert("La nueva contraseña no coinciden");
form1.newpass.focus();
}

}
else
{
alert("Ese no es la clave correcta, favor verificar");
form1.actualpass.focus();
}

}
</script>
</head>

<body>
<form name="form1" method="post">
<label>
Actual Password:<br>
<br>
<input name="actualpass" type="password" id="actualpass">
</label>
<p>Nuevo Password</p>
<p>
<input name="newpass" type="password" id="newpass">
</p>
<p>Confirmar Password </p>
<p>
<input name="cpass" type="password" id="cpass">
<label>
<input type="button" name="Submit" value="Enviar" onClick="pass();">
</label>
</p>
<p>&nbsp; </p>
</form>



</body>
</html>
favor enviarme un emails cualquier cosa a jeremiselxi@hotmail.com

carlos

06/3/2011
Debo pasar una variable javascript a una instruccion de asp
Tengo un pequeño problema:
Dentro de una pagina html tengo la sgte porcion de codigo:
<script language="JavaScript" type="text/JavaScript" >
var x = 0;
while (x < 6) {
document.write('<li><img src="images/Leonisa.jpg" alt="" width="145" height="64" class="layout" /><span><%=objDataSet.Tables(0).rows(x).item(1)%> </span><span class="txt2">' + x + '</span><a href="#"></a></li>');
x = x + 1;
}
</script>
que sucede:
en mi pagina aspx tengo una variable data set (objDataSet), que esta cargada con n registros, lo que deseo es utilizar este dataset en este codigo, pero que la variable x de java se me manifieste dinamicamente evitando colocar este codigo n veces, lo que quiero es volverlo dinamico de acuerdo al numero de registrs del dataset.

No se como concatenar esta variable "x" dentro del <% %>
<%=objDataSet.Tables(0).rows(x).item(1)%>

por favor ayudenme a concatenar esto para evitar rows(1) rows(2) .... rows(n)

daredevil

25/4/2012
Ayuda Programadores
Programadores Ayuda:

Tengo el siguiente codigo:
proveedor.js

var ArrayProvee = new Array();
ArrayProvee[0] = new Array(provee_nom);
ArrayProvee[1] = new Array(provee_descuento);
ajax.open("POST", "Clases/Clientes/Cliente.php", true);
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

ajax.send("ArrayProvee="+ArrayProvee);

ajax.onreadystatechange=function()
{
if (ajax.readyState==4) ...

El array que se esta enviando necesito recibirlo en la siguiente clase php:

ClienteFachada.php

class ClienteFachada {
private $Registros;
private $ProveeNom;
private $ProveeDes;
private $Array;

public function RegistrarProveedor(){
$this->Array = $_POST["ArrayProvee"];
$this->Registros->Opciones(1, $this->$Array);

}

Necesito recibir el array en la funcion RegistrarProveedor para enviarlo a otro archivo y proseguir con el registro, espero colaboraciones. Gracias

daredevil

25/4/2012
Ayuda Programadores
Programadores Ayuda:

Tengo el siguiente codigo:
proveedor.js

var ArrayProvee = new Array();
ArrayProvee[0] = new Array(provee_nom);
ArrayProvee[1] = new Array(provee_descuento);
ajax.open("POST", "Clases/Clientes/Cliente.php", true);
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

ajax.send("ArrayProvee="+ArrayProvee);

ajax.onreadystatechange=function()
{
if (ajax.readyState==4) ...

El array que se esta enviando necesito recibirlo en la siguiente clase php:

ClienteFachada.php

class ClienteFachada {
private $Registros;
private $ProveeNom;
private $ProveeDes;
private $Array;

public function RegistrarProveedor(){
$this->Array = $_POST["ArrayProvee"];
$this->Registros->Opciones(1, $this->$Array);

}

Necesito recibir el array en la funcion RegistrarProveedor para enviarlo a otro archivo y proseguir con el registro, espero colaboraciones. Gracias
FAQ relacionadas
Volver al árbol de categoríasVolver al árbol de categorías