Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Ori-chan en 27 Febrero 2013, 16:59 pm



Título: [PHP + JS] Error simple. Pero yo no lo encuentro.
Publicado por: Ori-chan en 27 Febrero 2013, 16:59 pm
Estaba practicando con PHP + JS e intenté hacer esto... pero no funciona.



Código
  1. <head>
  2. <title>Velocidad</title>
  3. <head/>
  4.  
  5. <script type="text/javascript">
  6. fuction velocidad () {
  7. var espacio = <?php echo $_REQUEST['espacio']; ?>
  8. var tiempo = <?php echo $_REQUEST['tiempo']; ?>
  9. var velocidad = espacio / tiempo;
  10. "respuesta:" + velocidad;
  11. document.write ("respuesta:" + velocidad);
  12. }
  13. </script>
  14.  
  15. <body>
  16. <form action="#" method="GET">
  17. Tiempo: <input type="text" name="tiempo" size="8" maxlength="30">
  18. Espacio: <input type="text" name="espacio" size="8" maxlength="30">
  19. <input type="button" onclick="velocidad()" value="confirmar">
  20. </form>
  21.  
  22. </body>




Un saludo, gracias por leer y espero tu respuesta!! :D


Título: Re: [PHP + JS] Error simple. Pero yo no lo encuentro.
Publicado por: it3r en 27 Febrero 2013, 17:24 pm
php solo se ejecuta en el servidor.El problema es que tienes el action con #, entonces tu php no se recarga y por tanto no va a poder ejecutar el codigo php que tienes en la parte de espacio y tiempo.

Tienes 2 posibles soluciones.

-Recargar la pagina.
-Hacerlo solo javascript.

Para recargar la pagina debes cambiar el action en el form.
Para hacerlo con javascript, debes cambiar el codigo php por javascript, es decir seleccionar los inputs con javascript (lo puedes hacer usando id)

Saludos.


Título: Re: [PHP + JS] Error simple. Pero yo no lo encuentro.
Publicado por: 1mpuls0 en 27 Febrero 2013, 18:41 pm
En realida no sé que intentas hacer xD pero podrías hacerlo así con js

Código
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Documento sin título</title>
  5. <script language="javascript">
  6. function velocidad() {
  7. var tiempo = document.getElementById('tiempo').value;
  8. var espacio = document.getElementById('espacio').value;
  9. var velocidad = espacio / tiempo;
  10. document.getElementById('resultado').innerHTML=velocidad;
  11. }
  12. </head>
  13.  
  14. <!--<form action="#" method="GET">-->
  15. Tiempo: <input type="text" name="tiempo" id="tiempo" size="8" maxlength="30">
  16. Espacio: <input type="text" name="espacio" id="espacio" size="8" maxlength="30">
  17. <input type="button" onclick="velocidad()" value="confirmar">
  18. <!--</form>-->
  19. <div id="resultado"></div>
  20. </body>
  21. </html>
  22.  


o así como mas o menos lo necesitas.

Código
  1.  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Documento sin título</title>
  7. <?PHP
  8. if(isset($_POST['confirmar'])) {
  9. if(!empty($_POST["tiempo"]) && !empty($_POST["espacio"])) {
  10. ?>
  11. <script language="javascript">
  12.                 var tiempo = <?php echo $_POST['tiempo']; ?>;
  13. var espacio = <?php echo $_POST['espacio']; ?>;
  14. var velocidad = espacio / tiempo;
  15.                 document.write ("respuesta: " + velocidad);
  16.                </script>
  17.            <?php
  18. }
  19. }  
  20. ?>
  21.  
  22. </head>
  23.  
  24. <body>
  25.  
  26. <form action="#" method="POST">
  27. Tiempo: <input type="text" name="tiempo" id="tiempo" size="8" maxlength="30">
  28. Espacio: <input type="text" name="espacio" id="espacio" size="8" maxlength="30">
  29. <input type="submit" name="confirmar" id="confirmar" value="confirmar" />
  30. </form>
  31.  
  32. </body>
  33. </html>
  34.  

Exactamente como lo necesitas no se puede :P ya mencionaron una razón xD
No puedes enviar el resultado a la misma página y despues a la función.

Tienes que saber como funciona los submit, button, get, post, action, onclick etc y saber como combinarlos de manera correcta.

Saludos.


Título: Re: [PHP + JS] Error simple. Pero yo no lo encuentro.
Publicado por: Ori-chan en 27 Febrero 2013, 20:16 pm
Muchas gracias a los dos. Supongo que aun tengo que practicar mucho.


Título: Re: [PHP + JS] Error simple. Pero yo no lo encuentro.
Publicado por: 1mpuls0 en 27 Febrero 2013, 20:22 pm
Aunque no es muy aconsejable hacerlo de la segunda forma.
Si observas el GeSHi no detecta donde termina js xD y es que es un lio cuando mezclas js con php.

Saludos.


Título: Re: [PHP + JS] Error simple. Pero yo no lo encuentro.
Publicado por: Ori-chan en 27 Febrero 2013, 21:53 pm
Entonces para que sirve PHP? Si se puede hacer con JS lo mismo


Título: Re: [PHP + JS] Error simple. Pero yo no lo encuentro.
Publicado por: #!drvy en 27 Febrero 2013, 22:01 pm
Citar
Entonces para que sirve PHP? Si se puede hacer con JS lo mismo

PHP -> Servidor
JS -> Cliente.

Con el JS puedes hacer esto.... pero si lo quieres guardar que ?

javascript no puede manejar bases de datos... no puede acceder a archivos del servidor... es muy limitado al mismo dominio (la política del mismo origen..) y muchas otras cosas...

Claro que existe JS Server (Node.js por ejemplo).. pero esa es otra historia.


Saludos


Título: Re: [PHP + JS] Error simple. Pero yo no lo encuentro.
Publicado por: 1mpuls0 en 27 Febrero 2013, 22:04 pm
Estrictamente no es lo msimo, depende de lo que quieras hacer, hacia donde envias tu información, donde quieres mostrar tu resultado.
En pocas palabras ambos se complementan.

JS lado del cliente (validaciones, verificaciones, "animaciones")
PHP lado del servidor (programación dinámica, cálculos, base de datos)

Con ambos puedes crear algunas funciones "iguales" (lo único que cambia es la sintaxis)

Saludos.


Título: Re: [PHP + JS] Error simple. Pero yo no lo encuentro.
Publicado por: dank_ en 28 Febrero 2013, 04:07 am
Sólo comentar que esa combinación de PHP con javascript que intentabas hacer es extremadamente vulnerable a XSS.