Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/06/2016, 18:13
Avatar de manuparquegiralda
manuparquegiralda
 
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 10 meses
Puntos: 39
Respuesta: problema para transformar de string a int

A ver, ¿eres consciente de lo que estás metiendo en la variable $id de PHP?

Como ha dicho rodocoyote15 no puedes pasar variables desde javascript a PHP por una razón muy sencilla, el PHP se ejecuta en el servidor, el Javascript en el navegador, esto quiere decir, que cuando el servidor envía la información al navegador todas las variables PHP ya están definidas y puesto que el servidor no ejecuta el código Javascript la variable PHP no está cogiendo el valor que tu quieres darle.

Mira si haces esto:

Código PHP:
Ver original
  1. <script type="text/javascript">
  2. var id = window.location.search;
  3. var id=id.substr(1);
  4. </script>
  5.  
  6. <?php
  7. $id = '<script> document.write(id) </script>';
  8.  
  9. echo $id;
  10. ?>

Te dará como resultado que estás definiendo la variable $id como "<script> document.write(id) </script>" literalmente, es decir, no como el resultado de window.location.search. Porque como te he dicho, la variable PHP la defines en el servidor y el servidor no te ejecuta el código Javascript. Por tanto el resultado al pasar a INT te da 0, porque directamente no le estás pasando un número en string.

Por lo tanto, no puedes pasar variables de Javascript a PHP, pero si lo puedes hacer al revés. Por ejemplo:

Código PHP:
Ver original
  1. <?php
  2. $miVar = "Hola";
  3. ?>
  4.  
  5. <script>
  6. var foo = "<?php echo $miVar; ?>";
  7. </script>

Esto te dará que la variable foo de Javascript si es la variable $miVar de PHP, porque el servidor ejecuta el PHP y le manda al navegador esto:

Código Javascript:
Ver original
  1. <script>
  2. var foo = "Hola";
  3. </script>

Bien, teniendo en cuenta que lo que intentas hacer es no lo puedes hacer de esa manera. Tendrías que captar la URL en PHP y no en Javascript, para eso tienes las variables de servidor de PHP. Te pongo un ejemplo si la url de la que estás sacando la información con Javascript es: http://www.midominio.com/prueba.php?id=1&nombre=Juan y quieres sacar los argumentos pasados la URL tienes una varibale en PHP que es $_GET

Código PHP:
Ver original
  1. <?
  2. $id = $_GET['id'];
  3. $nombre=$_GET['nombre'];
  4.  
  5. echo $id." - ".$nombre;
  6.  
  7. //Te imprimirá: 1 - Juan
  8. ?>

Si lo que quieres hacer es sacar todos los argumentos, puedes hacer lo que te ha dicho rodocoyote15

Código PHP:
Ver original
  1. <?php
  2.  
  3. $url= $_SERVER["REQUEST_URI"];
  4. $url = explode("?", $url);
  5. echo $url[1];
  6.  
  7. // Te imprimirá: id=1&nombre=Juan
  8.  
  9. ?>

Normalmente en PHP no necesitas pasar un string sencilo como "1" a int, te lo hace directamente. Por ejemplo si obtienes la id por el método GET, no haría falta que lo pasaras a string;
__________________
Diseño Web - Arisman Web