Comunidad de diseño web y desarrollo en internet online

Facebook, php Y script

Citar            
MensajeEscrito el 22 Feb 2011 01:09 am
Buen día, tengo un problema al colocar el siguiente script conecto desde mi aplicación sin problema:

Código :

  <script>
  function publicar(){
  var user_message_prompt = 'Mensaje prueba';
  var user_message = 'Escribe tu comentario...';
  var attachment = {'media':
  [{'type':'image',
  'src':'http://www.prueba,com/avatar.png',
  'href':'http://apps.facebook.com/prueba/'}],
  'name':'Pruebame',
  'href':'http://apps.facebook.com/prueba/',
  'description':'Logre varios puntos de experiencia con esta prueba, como la ven?'};
  Facebook.streamPublish(user_message,attachment,'','',user_message_prompt);
  }
publicar();
</script>


Pero cuando lo condiciono con una variable en php deja de funcionar:

Código :

 if (<?php $activador ?> == 'listo'){
    publicar();
}


la variable es la palabra "listo" y la recibo correctamente desde FLASH pues la misma variable activa una llamada a SQL sin problema.

Solo que cuando la quiero reutilizar en este Script no pasa nada.

ALGUNA SUGERENCIA?

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 22 Feb 2011 02:20 am
Por cierto también probé así y tampoco:

Código :

if (<?php echo $activador ?> == 'listo'){

    publicar();

}

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 22 Feb 2011 06:50 am
de seguro tenes un problema con la variable $activador.
No cumple la condicion de "listo". eso es lo que se puede ver a simple vista con respecto al codigo que pusiste

Por calebzion

51 de clabLevel



Genero:Masculino  

Diseñador Programador Principiante

firefox
Citar            
MensajeEscrito el 22 Feb 2011 05:48 pm

calebzion escribió:

de seguro tenes un problema con la variable $activador.
No cumple la condicion de "listo". eso es lo que se puede ver a simple vista con respecto al codigo que pusiste


Hola Calebzion! Como comente la variable $activador si responde a la palabra "listo" pues uso esa misma variable para activar otras funciones en mi código las cuales si se activan.
:shock:

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 22 Feb 2011 06:21 pm
Si mira

Lo que pasa es que no te estas poniendo a pensar claramente.

que pasa cuando PHP imprime la palabra listo, tu javascript queda asi:

Código Javascript :

if (listo == 'listo'){ // El primer listo no tiene comilla, JS piensa que es una variable

    publicar();

}


cual es el problema?

Pues que cuando tu navegador hace la comparacion entre la variable listo y el string listo, encuentra que la variable listo no existe.

La solucion:

si quieres comparar el resultado de la variable PHP con la variable JS, no asumas que Javascript va a entender tu variable PHP, debes tener claro que tienes que decirle a JS que lo que imprime tu PHP no es una variable y si es un STRING


Código Javascript :


// opcion 1

 if ('<?php echo $activador ?>' == 'listo'){
    publicar();
}


// opcion 2

 if (<?php echo "'".$activador."'" ?> == 'listo'){
    publicar();
}


Tienes que agregarle las comillas fuera de los delimitadores PHP para que puedas hacer tu coomparacion correctamente.

Lo cual nos da un resultado de :

Código Javascript :

if ('listo' == 'listo'){ // Ahora ambos son un string la coomparacion se puede realizar

    publicar();

}



Espero te quede claro

Saludos

PD, baja FIREBUG, si lo tuvieces te hubieras dado cuenta que se te esta declarando listo como una variable, y firebug te hubiera avisado que la variable listo no existe.

Por jOina

Claber

359 de clabLevel

2 tutoriales

 

Guadalajara, Mexico

firefox
Citar            
MensajeEscrito el 28 Feb 2011 10:13 pm

jOina escribió:

Si mira

Lo que pasa es que no te estas poniendo a pensar claramente.

que pasa cuando PHP imprime la palabra listo, tu javascript queda asi:

Código Javascript :

if (listo == 'listo'){ // El primer listo no tiene comilla, JS piensa que es una variable

    publicar();

}


cual es el problema?
.................

Espero te quede claro

Saludos

PD, baja FIREBUG, si lo tuvieces te hubieras dado cuenta que se te esta declarando listo como una variable, y firebug te hubiera avisado que la variable listo no existe.


Gracias jOina , pero aún no funciona, aunque visualice cual es el error que aún no puedo solucionar, si yo coloco :

Código Javascript :

if ('<?php echo $activador ?>' == 'listo'){

   echo = " si, sirve"

}

me imprime el echo cuando se activa la variable sin problema, pero si coloco mi activador de la funcion dentro del if :

Código Java :

publicar();

No hace nada, nada de nada, eso si, si coloco mi activado de la función afuera del if funciona sin problemas.

QUE HAGO?

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 28 Feb 2011 10:49 pm
aver amigo intenta con esto...

Código Javascript :

var listo = '<?php echo $activador ?>';

if (listo == 'listo'){ 
 
  publicar();
 
}


si no funciona quiza es por que necesites ejecutar el codigo javascript hasta que el DOM este completamente cargado.

Lo que puedes hacer tambien es meter el codigo que acabo de poner, dentro de otra funcion, algo como esto:

Código Javascript :

function docReady(){
var listo = '<?php echo $activador ?>';

if (listo == 'listo'){ 
 
  publicar();
}
 
}


Y en tu HTML , en la etiqueta <body>, pones esto

Código HTML :

<body onload="docReady">
</body>


y si ya de plano no funciona, seguro con jQuery lo logras sin problema, en caso de que no funcione y en casi de que si funcione de todos modos te recomiendo leer el quickstart de jQuery y despues te lees la documentacion del metodo .load().

Saludos

Por jOina

Claber

359 de clabLevel

2 tutoriales

 

Guadalajara, Mexico

firefox
Citar            
MensajeEscrito el 03 Mar 2011 09:27 pm
Les agradezco a todos su ayuda les comento como lo resolví, pues el problema era que la instrucción "if" la recibía a partir de los 10min que se cargaba el código, obviamente como no estaba en un php si no sobre js pues no se actualizaba el código y jamas llegaba la instrucción, así que meti todo a php y problema resulto la instrucción llego correctamente.

SALUDOS Y GRACIAS POR SU AYUDA.

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.