LinuxParty
En este texto, comprobamos que las variables $mivarPhp y mivarJS pueden intercambiarse entre PHP y JavaScript
Es importante y debes recordar, que JavaScript es "Case Sensitive", lo que quiere decir que distingue los nombres de las variables en mayúsculas y minúsculas, y por lo tanto, debes de escribir tus variables siempre con tu misma política de programación.
<!-- ============================================= --> <!-- Intercambio de una variable de PHP a JavaScript --> <!-- ============================================= --> <?php $mivarPhp = "Asignado en PHP";
echo $mivarPhp."\n<br>"; ?> <script type="text/javascript"> var mivarJS ="Asignado en JS";
alert (mivarJS);
mivarJS="<?php echo $mivarPhp ?>";
alert (mivarJS);
</script>
Puede copiar todos los ejemplos, uno debajo de otro, creando un único fichero llamado "prueba.php" y comprobar las salidas. Te lo recomiendo.
<!-- ============================================= --> <!-- Intercambio de una variable de JavaScript a PHP --> <!-- ============================================= --> <?php $mivarPhp=
'<script type="text/javascript">; var mivarJS="Asignado en JS"; document.writeln (mivarJS); </script>';
echo $mivarPhp."\n<br>"; echo '<br>Comprobar si es \\$mivarPhp igual que "Asigando en JS"<br>'; if ($mivarPhp == "Asigando en JS") echo "Es igual.<br>"; else echo "Es distinto.<br>"; ?> <!-- El principal problema de este punto, es que la variable no contendrá el valor propiamente dicho, sino el script que reproducirá un valor, y puede que sólo te interese para puntos muy concretos donde no tienes que comprobar valores -->
En los arrays, para hacer un intercambio "simple" sin tener que utilizar librerías externas como JSON, JQuery ni demás podemos hacer este pequeño truco, que consiste en fusionar todos los elemenos de un array, en una única variable que tendrá un elemento en común que los separa, en este caso: '|' después, en PHP separaremos los elementos utilizando ese mismo elemento.
<!-- ============================================= --> <!-- Intercambio de un ARRAY de JavaScript a PHP --> <!-- ============================================= --> <script> a = new Array(0,1,2,3,4,5,6,7,8,9);
function implode(array){
var imploded=array[0];
for (i=1; i<array.length; i++)imploded += '|' + array[i];
return imploded
}
alert(implode(a))
</script>
<?php $tuVariable=
'<script type="text/javascript">; document.writeln (a); </script>';
echo "\nValor de tuVariable.: ".$tuVariable."\n<br>"; ?> <?php $tuVector = explode('|',$tuVariable); print_r($tuVector); for ($i=0; $i<=count($tuVector);$i++) echo "\n<br>(".$i.")".$tuVector[$i]."\n<br>"; ?>
Para el caso de PHP a JavaScript, es tan sencillo como hacer el código de abajo, basado en el código de arriba pero con ligeras modificaciones.
<!-- ============================================= -->
<!-- Intercambio de un ARRAY de PHP a JavaScript -->
<!-- ============================================= -->
<?php
//...
$array_php = array(23, 24, 33, 55, 77);
//...
?>
<?php
$i=0;
echo "\n<br>Elementos contados...:".count($array_php)."<br>\n";
echo "\n".'<script type="text/javascript">';
echo "\nvar array_js = new Array(".implode(",",$array_php).");";
echo "\ndocument.writeln (array_js);\n";
echo "\nalert(array_js[2]);\n";
echo "\n</script>";
?>
Este es un ejemplo más elaborado de intercambio de datos a través de JavaScript.
***********************************
***********************************
<!-- ============================================= -->
<!-- Intercambio de una variable de JavaScript a PHP -->
<!-- ============================================= -->
<br>
<br>
<a name="1"></a><br>
<a href="#1" id="link1">Click me!</a>
<script>
var js_var1 = "<br />Hello world from JavaScript1";
document.getElementById("link1").onclick = function () {
window.location = "?js_var1=" + js_var1;
}
</script>
<?php
if (isset($_GET['js_var1'])) $php_var1 = $_GET['js_var1'];
else $php_var1 = "<br />js_var1 <b>No ha sido iniciado</b>, pinche en -Click me-!";
echo "Valor link1.: ".$php_var1;
?>
Este ejemplo, utilizamos AJAX , más elaborado todavía, que el anterior requiere un fichero separado llamado "process.php"
<!-- ============================================= -->
<!-- Intercambio de una variable de JavaScript a PHP -->
<!-- ============================================= -->
<br>
<br>
<a name="2"></a><br>
<a href="#2" id="link2">Click me!</a>
<div id="update"></div>
<script type="text/javascript">
var js_var = "<br />Hello world from JavaScript2";
document.getElementById("link2").onclick = function () {
// ajax start
var xhr;
if (window.XMLHttpRequest) xhr = new XMLHttpRequest(); // all browsers
else xhr = new ActiveXObject("Microsoft.XMLHTTP"); // for IE
var url = '/tmp/process.php?js_var=' + js_var;
xhr.open('GET', url, false);
xhr.onreadystatechange = function () {
if (xhr.readyState===4 && xhr.status===200) {
var div = document.getElementById('update');
div.innerHTML = xhr.responseText;
}
}
xhr.send();
// ajax stop
return false;
}
</script>
**********************************************************************
**********************************************************************
FICHERO SEPARADO.: process.php
<!-- ============================================= -->
<!-- Fichero Separado /tmp/process.php (el directorio /tmp/ es en mi caso y ejemplo-->
<!-- ============================================= -->
<?php
if (isset($_GET['js_var'])) $php_var = $_GET['js_var'];
else $php_var = "<br />js_var is not set!";
echo "\n<br>Valor desde process.php.: ".$php_var;
echo "\n<br>";
?>
**********************************************************************
**********************************************************************
El ejemplo anterior tiene una limitación, el valor de la variable $php_var no puede compartirse con el fichero principal.
Este ejemplo, es una solución que yo os propongo para vuestros posibles intercambios. (copiar a fichero separado, como ejemplo3.php)
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function calcula(form) {
if (confirm("¿Son correctos los datos introducidos? \n"+
"\nUsuario...:"+form.dniusuario.value+
"\nContraseña:"+form.contrasena.value+
"\nCategoría.:"+form.listaname.value)){
window.location.href= "?usuario="+form.dniusuario.value+"&contrasena="+form.contrasena.value+"&categoria="+form.listaname.value;
} else {
alert("Vuelva a intentarlo...")
}
}
</script>
</head>
<body>
<a name="obtenvalores"></a><br>
<?php
if (empty($usuario))
{
$usuario = $_GET['usuario'];
}
if (empty($contrasena))
{
$contrasena = $_GET['contrasena'];
}
if (empty($categoria))
{
$categoria = $_GET['categoria'];
}
?>
<FORM>
Debe introducir un DNI del usuario, este será el nombre del usuario para el proceso de validación para entrar en el sistema.
<br>
DNI del usuario.................:
<INPUT TYPE="text" NAME="dniusuario" VALUE="<?php echo $usuario ?>" SIZE=15>
<br>
Si introduce el email, se generará una contraseña y ésta será enviada al usuario.
<br>
Cambie la contraseña (no necesario):
<INPUT TYPE="text" NAME="contrasena" VALUE="@M1c0nt4@L" SIZE=15>
<br>
El usuario puede tener una o varias categorías, deberá subir todos los ficheros de la misma categoría.
<br>
Categoría para los ficheros:
<select name="listaname">
<option>UNO</option>
<option>DOS</option>
<option>TRES</option>
<option>CUATRO</option>
</select>
<br>
<INPUT TYPE="button" NAME="Boton" VALUE="Comprueba" ONCLICK="calcula(this.form)">
<hr>
<br>
Usuario...:
<INPUT TYPE="text" NAME="resultado" VALUE="<?php echo $usuario ?>" SIZE=15>
<br>
Selección.:
<INPUT TYPE="text" NAME="opcion" VALUE="<?php echo $categoria ?>" SIZE=15>
<br>
Contraseña:
<INPUT TYPE="text" NAME="opcion" VALUE="<?php echo $contrasena ?>" SIZE=15>
<br>
<hr>
</FORM>
<?php
if (empty($usuario))
{
echo "comprueba user";
$usuario = $_GET['usuario'];
}
echo "\n<br>phpUsuario..:".$usuario;
echo "\n<br>";
if (empty($contrasena))
{
echo "comprueba contra";
$contrasena = $_GET['contrasena'];
}
echo "\n<br>phpContraseña.:".$contrasena;
echo "\n<br>";
if (empty($categoria))
{
echo "comprueba categ";
$categoria = $_GET['categoria'];
}
echo "\n<br>phpCategoria.:".$categoria;
?>
</body>
</html>

-
Empleo
- El CEO de IBM no cree que la IA vaya a reemplazar a los programadores en el futuro cercano
- El desempleo en el sector de TI en Estados Unidos aumenta al 5,7 %. ¿Está la IA afectando a los empleos tecnológicos?
- Un estudio afirma que el incumplimiento de los plazos hace que la gente juzgue el trabajo con más dureza
- Los buscadores de empleo inundan a los reclutadores con CV generados por IA
- Esto es lo que sucede cuando le das "dinero gratis" a la gente
- ¿Una semana laboral de tres días? Experimentos de inicio para atraer talento
- Seguir el valor de las criptomonedas en la terminal de Linux en tiempo real
- Reportero deplora dejar entrar a la gente de Amazon en su casa
- La Economía Gig celebra el Trabaje Usted mismo Hasta Morir
- ¿Qué es la Economía Gig?
- El Ejercito Italiano se ahorra 29 millones de euros, con LibreOffice
- Economía Star Trek
- Las 25 empresas de Software que mejor pagan a sus empleados
- Google no es puro demonio como Facebook
- Facturar un diseño web sin ser autónomo (I)