FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
No pasa valores de var php a JS
Hola amigos.
Siento volver a tener que solicitar vuestra ayuda. He pasado muchas variables de php a js pero no sé por qué aquí no puedo. El código que envío es de prueba, lo digo por Ñuño. Cuando consiga pasar las variables ya lo daré una forma más precisa, no me olvido de las "buenas formas". No entiendo por qué no me pasa los valores. Os copio la función. He constatado que lee el archivo. Pero no pasa los valores. La intención es pasarlos al array "datosM". Utilizando jason_encode ya sé que me funcionaría haciendo algunos cambios, pero no quisiera utilizarlo, por motivos que no vienen al caso. Código PHP:
¿Alguien puede decirme por qué no se pasan los datos? Gracias, de antemano por vuestro tiempo. Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#2
|
||||
|
||||
Creo que si encierras entre etiquetas <script> tu variable debería funcionar correctamente
Código:
echo "<script>i=5 ; alert(i);</script>" Saludos
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#3
|
|||
|
|||
Gracias, yusneerqui.
Creo que no me expliqué bien. La función pertenece a JS. Y ya he utilizado otras veces algo semejante. La función completa es así. Código PHP:
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#4
|
||||
|
||||
Es que estás intentando desde el servidor crear un arreglo en la memoria del cliente, eso va contra toda lógica, si quieres armar el arreglo deberá ser un arreglo literal del tipo datosM = [a,b,c...]; pero que quede así escrito en la página. Mira este link
https://desarrolloweb.com/articulos/...cript-php.html Recuerda que el php se ejecuta en el servidor y el js en el cliente, por tanto si intentas hacer lo que dices no trabaja. Una ves mostrada la página en el cliente debes usar ajax u otro mecanismo similar para comunicarte con el servidor y "traer" la información que necesitas.
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#5
|
|||
|
|||
Muchas gracias yusnerqui por tu interés.
He visitado el enlace que me dejaste. Creo que hace lo contrario de lo que yo estoy haciendo. Me explico: yo utilizo PHP dentro de una función JS y en el link que me dejaste, (no lo entiendo muy bien), pero creo que se hace lo contrario, es decir usar JS dentro de una función PHP. Yo me manejo mejor usando PHP dentro de JS. Y no me ha ido mal. Con esta modalidad de construcción (ni mejor ni peor que otra) me apaño mejor (repito). La función que transcribo a continuación FUNCIONA PERFECTA. La he "super-comentado" a propósito para se entienda perfectamente, (aunque reconozco que, para la mayoría de vosotros, no es necesario). Código PHP:
Me diréis: " si funciona... ¿Por qué pides ayuda?" Os repito: NO QUIERO USAR "json_encode" Me diréis: "¿por qué?" Respondo: voy a encriptar la página con un programa que no reconoce json, pero sí JS puro. Me gustaría, si es posible, conseguir el arreglo (array) en JS desde un fichero PHP, SIN TENER QUE RECURRIR A JSON. Intenté hacerlo leyendo el fichero, línea por línea, pero no consigo hacer el array de JS. NO ME PASA LOS VALORES DE LAS VARIABLES OBTENIDAS EN PHP A JS. Al menos de la forma que lo estoy intentando. Gracias por soportar mi "pesadez" Saludos cordiales.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) Última edición por jhonalone fecha: 25-03-2018 a las 21:10:23. |
#6
|
||||
|
||||
Pues ya me dirás como lo resuelves. De todos modos no dejaré de insistir, a mi entender, estás planteando mal el asunto, una función js solo puede ser llamada cuando la página está cargada en la pc del usuario, allí no trabajará tu código php pues el php solo funciona en el servidor.
Si lo has hecho antes revisa bien el modo en que lo hiciste. Yo no tengo referencias de que esto sea posibe, siento no poder ser más útil. saludos
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#7
|
||||
|
||||
Coincido con yusnerqui. Realiza la peticion por ajax y desde PHP le podras retornar la informacion "masticada" como quieras. De otra manera es ir en contra de la corriente...la web es compleja, no lo hagas mas complicado aun
|
#8
|
|||
|
|||
Gracias yusnerqui. Gracias Agustin.
Sinceramente, agradezco vuestro interés. He usado la combinación anterior (PHP en JS) con buenos resultados hasta ahora. De hecho la última copia de la función, (la que he comentado hasta la saciedad) FUNCIONA PERFECTA. No sé hacerlo de otro modo. Si vosotros conocéis otra manera de hacerlo, si tenéis ganas y tiempo, os agradecería que le dierais la vuelta a la función y me la hicierais llegar. Gracias de nuevo. Saludos cordiales.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#9
|
||||
|
||||
Prueba si esto te funciona,
Código:
<script> function HazArrayM_txt() { var l; datosM = []; // Vaciamos el array <?php if (file_exists('XX/Prueba.txt')) { $fp = fopen('XX/Prueba.txt', 'r'); echo "datosM = ["; while (!feof($fp)) { $linea = fgets($fp); $l = strlen($linea); if ($l > 17) { $linea = substr($linea, 0, 16); echo "$linea ,"; } } fclose($fp); }// if echo "]"; ?> }; // fin HazArrayM </script> saludos
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#10
|
||||
|
||||
Prueba si esto te funciona,
Código:
<script> function HazArrayM_txt() { var l; datosM = []; // Vaciamos el array <?php if (file_exists('XX/Prueba.txt')) { $fp = fopen('XX/Prueba.txt', 'r'); echo "datosM = ["; while (!feof($fp)) { $linea = fgets($fp); $l = strlen($linea); if ($l > 17) { $linea = substr($linea, 0, 16); echo "'$linea' ,"; } } fclose($fp); }// if echo "]"; ?> }; // fin HazArrayM </script> saludos Edito: Faltaba encerrar el texto entre comillas.
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#11
|
|||
|
|||
Gracias, yusnerqui por tu esfuerzo en ayudarme.
Lo voy a probar y te cuento. Un saludo muy cordial.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#12
|
|||
|
|||
¡¡FABULOSO!!, yusnerqui.
¡¡Funcionó a la primera!! Hice una reseña en tu reputación. ¡Ya eres mi héroe! ¡Un millón de gracias! Abusando de tu buena voluntad, ¿Podrías comentarme el script, o explicarme cómo funciona? Lo digo para recibir una clase magistral TUYA que puede servirme para aprender a hacerlo por mí mismo la próxima vez. Si es posible. Si no, no te preocupes, ya me has ayudado bastante. Inmensamente agradecido.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#13
|
||||
|
||||
Jajajajaja, me he reido bastante con tu mensaje, el egómetro me explotó al leerlo jajaja.
Lo primero que debes saber es que no estás ejecutando php desde js ni mucho menos, sino que estás usando php para construir tu código js. El efecto de este código es el mismo que si tú te leyeras el fichero de texto, determinaras los trozos de cadena a poner y los teclearas en el arreglo. Si das clic derecho a tu navegador y seleccionas ver codigo fuente notarás que tu arreglo está declarado así Código:
datosM = ['Primera cadena', 'Segunda cadena', 'Tercera cadena'...] Solo te comentaré un par de cosas puesto que la función es practicamente la misma que tú supercomentastes. Código:
<script> function HazArrayM_txt() { var l; datosM = []; // Vaciamos el array <?php //inicio php if (file_exists('XX/Prueba.txt')) { $fp = fopen('XX/Prueba.txt', 'r'); echo "datosM = [";//comienzo a armar el arreglo while (!feof($fp)) { $linea = fgets($fp); $l = strlen($linea); if ($l > 17) { $linea = substr($linea, 0, 16); echo "'$linea' ,"; //le voy agregando cada elemento, notese la comilla simple para enmarcar la cadena } } fclose($fp); }// if echo "]";//cierro el corchete del arreglo. ?> //termino php }; </script> Saludos
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#14
|
|||
|
|||
Ja, ja, ja.
¡Que buen humor tienes yusnerqui , y qué buena predisposición de ayudar! Muchas gracias, de nuevo. Ahora entiendo la construcción, gracias a ti. Siento lo del egómetro. Ja,ja,ja. Un saludo muy cordial.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#15
|
||||
|
||||
Me han pitado los oídos...
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
VALORES FANTASMAS FIREBIRD 2.1 valores Grandes | ASAPLTDA | Firebird e Interbase | 17 | 02-12-2012 13:09:02 |
¡Uy!, que se pasa... | Casimiro Notevi | La Taberna | 15 | 03-07-2012 19:07:36 |
¿Qué pasa con ClubDelphi? | P0werBurn | Varios | 7 | 05-08-2010 04:15:29 |
Que pasa con DBLockupComboBox | Luis Castillo | Conexión con bases de datos | 11 | 21-12-2005 14:59:32 |
Que pasa en el servidor ? | IVAND | Firebird e Interbase | 0 | 22-11-2004 19:48:43 |
|