Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-03-2018
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
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:
function HazArrayM_txt()
{
var l;
datosM = []; // Vaciamos el array

<?php        
if (file_exists('XX/Prueba.txt'))
{
    
$fp fopen('XX/Prueba.txt''r');
    while (!
feof($fp))
    {
        
$linea fgets($fp);
        
$l strlen($linea);
        if (
$l 17
        
$linea substr($linea016);
        {
        
?>
    l = <?php echo $linea;?>
        //datosM.push(l);
    alert(l);
        <?php
        
}
    }
    
fclose($fp);
}
// if    
    
?>        
}; // fin HazArrayM

¿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)
Responder Con Cita
  #2  
Antiguo 25-03-2018
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Creo que si encierras entre etiquetas <script> tu variable debería funcionar correctamente

Código:
  echo "<script>i=5 ; alert(i);</script>"
debe funcionar.


Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #3  
Antiguo 25-03-2018
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
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:
<script>
function HazArrayM_txt()
{
var l;
datosM = []; // Vaciamos el array

<?php        
if (file_exists('XX/Prueba.txt'))
{
    
$fp fopen('XX/Prueba.txt''r');
    while (!
feof($fp))
    {
        
$linea fgets($fp);
        
$l strlen($linea);
        if (
$l 17
        
$linea substr($linea016);
        {
        
?>
    l = <?php echo $linea;?>
        //datosM.push(l);
    alert(l);
        <?php
        
}
    }
    
fclose($fp);
}
// if    
    
?>        
}; // fin HazArrayM
</script>
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)
Responder Con Cita
  #4  
Antiguo 25-03-2018
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
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

Responder Con Cita
  #5  
Antiguo 25-03-2018
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
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:
<SCRIPT>
    // Empieza JS Definitivamente
    // Empieza la función HazArrayM_txt() de JS
function HazArrayM_txt() 
{

    datosM = []; // Vaciamos el array de JS o lo creamos si no existe
    // Acaba JS provisionalmente
// empieza PHP    provisionalmente
<?php     
if (file_exists('XX/Prueba.txt'))
{       
    
$fa2 file('XX/Prueba.txt'); // leemos todo el fichero en un array PHP
        
    
$size2 count($fa2);        
    for(
$i=0$i<$size2$i++) 
    {        
    
    
$l strlen($fa2[$i]);
    if (
$l 17
    {
        
$text2 explode("|",rtrim($fa2[$i]));
        
$linea $text2[0];     //$text2[0] ya tiene la string de 16 caracteres que me interesa    
?> 
//Acaba PHP provisionalmente
    // sigue JS provisionalmente
    datosM.push(<?php echo json_encode($linea);?>); // Pasamos datos de PHP a JS
    // Termina JS provisionalmeente
// Sigue PHP provisionalmente    
<?php    
    
// para if ($l > 17) de PHP
    
// para for de PHP
    
unset( $fa2 );
// para if file_exists    
?>    
// termina PHP definitivamente
};  // Termina la función HazArrayM_txt() de JS
    // Termina JS definitivamente
</SCRIPT>
Ahora bien, NO QUIERO USAR "json_encode"

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 20:10:23.
Responder Con Cita
  #6  
Antiguo 25-03-2018
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
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

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
VALORES FANTASMAS FIREBIRD 2.1 valores Grandes ASAPLTDA Firebird e Interbase 17 02-12-2012 12:09:02
¡Uy!, que se pasa... Casimiro Notevi La Taberna 15 03-07-2012 18:07:36
¿Qué pasa con ClubDelphi? P0werBurn Varios 7 05-08-2010 03:15:29
Que pasa con DBLockupComboBox Luis Castillo Conexión con bases de datos 11 21-12-2005 13:59:32
Que pasa en el servidor ? IVAND Firebird e Interbase 0 22-11-2004 18:48:43


La franja horaria es GMT +2. Ahora son las 14:21:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi