Foros del Web » Programando para Internet » Javascript »

Ejecutar script desde submit

Estas en el tema de Ejecutar script desde submit en el foro de Javascript en Foros del Web. Bueno, estoy seguro de que les va a parecer muy estúpida mi consulta a todos, pero realmente todas las cosas que hice las hice enteramente ...
  #1 (permalink)  
Antiguo 25/09/2009, 16:56
 
Fecha de Ingreso: julio-2009
Ubicación: Córdoba
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Ejecutar script desde submit

Bueno, estoy seguro de que les va a parecer muy estúpida mi consulta a todos, pero realmente todas las cosas que hice las hice enteramente "tocando de oído" y sin tener idea.

Mi duda es la siguiente: tengo este script

Código PHP:
<script>
var template_id = 169833869114;
var user_message_prompt = "Comenta algo sobre tu precio"; 
// El texto de muestra que saldrá a la hora de publicar.
var user_message = {value: ""}; 

// La información que introducimos en la plantilla, por ejemplo imágenes y textos fijos que acompañarán nuestro mensaje
var template_data={"app":"<a href='apps.facebook com/galletasholandesas'>Galleta de la fotuna holandesa</a>", "resp":"precio", "images":[{"src":"granplan.netne net/oro.jpg", "href":"apps.facebook com/precioenoro/"}]}
var body_general="<br /><br /><b><? 
$accion 

$kg $_POST["kg"];
$gr $_POST["gr"];
$m "U$D";
$suma = ($gr $kg);
$divi = ($suma 1000);
$precio = ($divi 33192);
echo 
"Si fueras de oro puro valdrias <b>$m ".number_format($precio ,"," ,".")."</b>";""
?></b>";

var continuation = function() {};

Facebook.showFeedDialog( template_id, template_data, body_general, '', continuation, user_message_prompt, user_message );
</script>
Y me gustaria que este script se ejecute cuando le doy submit a este formulario:

Código HTML:
<form action='?action=accion' method='post'>
<select name='kg' id='kg'>
<option value='20000'>20 Kg. </option>
<option value='21000'>21 Kg. </option>
<option value='22000'>22 Kg. </option>
<option value='23000'>23 Kg. </option>
<option value='24000'>24 Kg. </option>
<option value='25000'>25 Kg. </option>
<option value='26000'>26 Kg. </option>
<option value='27000'>27 Kg. </option>
<option value='28000'>28 Kg. </option>
<option value='29000'>29 Kg. </option>
<option value='30000'>30 Kg. </option>
<option value='31000'>31 Kg. </option>
<option value='32000'>32 Kg. </option>
<option value='33000'>33 Kg. </option>
<option value='34000'>34 Kg. </option>
<option value='35000'>35 Kg. </option>
<option value='36000'>36 Kg. </option>
<option value='37000'>37 Kg. </option>
<option value='38000'>38 Kg. </option>
<option value='39000'>39 Kg. </option>
<option value='40000'>40 Kg. </option>
<option value='41000'>41 Kg. </option>
<option value='42000'>42 Kg. </option>
<option value='43000'>43 Kg. </option>
<option value='44000'>44 Kg. </option>
<option value='45000'>45 Kg. </option>
<option value='46000'>46 Kg. </option>
<option value='47000'>47 Kg. </option>
<option value='48000'>48 Kg. </option>
<option value='49000'>49 Kg. </option>
<option value='50000'>50 Kg. </option>
<option value='51000'>51 Kg. </option>
<option value='52000'>52 Kg. </option>
<option value='53000'>53 Kg. </option>
<option value='54000'>54 Kg. </option>
<option value='55000'>45 Kg. </option>
<option value='56000'>56 Kg. </option>
<option value='57000'>57 Kg. </option>
<option value='58000'>58 Kg. </option>
<option value='59000'>59 Kg. </option>
<option value='60000'>60 Kg. </option>
<option value='61000'>61 Kg. </option>
<option value='62000'>62 Kg. </option>
<option value='63000'>63 Kg. </option>
<option value='64000'>64 Kg. </option>
<option value='65000'>65 Kg. </option>
<option value='66000'>66 Kg. </option>
<option value='67000'>67 Kg. </option>
<option value='68000'>68 Kg. </option>
<option value='69000'>69 Kg. </option>
<option value='70000'>70 Kg. </option>
<option value='71000'>71 Kg. </option>
<option value='72000'>72 Kg. </option>
<option value='73000'>73 Kg. </option>
<option value='74000'>74 Kg. </option>
<option value='75000'>75 Kg. </option>
<option value='76000'>76 Kg. </option>
<option value='77000'>77 Kg. </option>
<option value='78000'>78 Kg. </option>
<option value='79000'>79 Kg. </option>
<option value='80000'>80 Kg. </option>
<option value='81000'>81 Kg. </option>
<option value='82000'>82 Kg. </option>
<option value='83000'>83 Kg. </option>
<option value='84000'>84 Kg. </option>
<option value='85000'>85 Kg. </option>
<option value='86000'>86 Kg. </option>
<option value='87000'>87 Kg. </option>
<option value='88000'>88 Kg. </option>
<option value='89000'>89 Kg. </option>
<option value='90000'>90 Kg. </option>
<option value='91000'>91 Kg. </option>
<option value='92000'>92 Kg. </option>
<option value='93000'>93 Kg. </option>
<option value='94000'>94 Kg. </option>
<option value='95000'>95 Kg. </option>
<option value='96000'>96 Kg. </option>
<option value='97000'>97 Kg. </option>
<option value='98000'>98 Kg. </option>
<option value='99000'>99 Kg. </option>
<option value='100000'>100 Kg. </option>
</select>

<select name='gr' id='gr'>
<option value='00'> 00 gr. </option>
<option value='100'>100 gr. </option>
<option value='200'>200 gr. </option>
<option value='300'>300 gr. </option>
<option value='400'>400 gr. </option>
<option value='500'>500 gr. </option>
<option value='600'>600 gr. </option>
<option value='700'>700 gr. </option>
<option value='800'>800 gr. </option>
<option value='900'>900 gr. </option>
</select>
<input type='submit' />
</form> 
Por ultimo la variable accion es:

Código PHP:
$accion 
$kg $_POST["kg"];
$gr $_POST["gr"];
$m "U$D";
$suma = ($gr $kg);
$divi = ($suma 1000);
$precio = ($divi 33192);
echo 
"Si fueras de oro puro valdrias <b>$m ".number_format($precio ,"," ,".")."</b>"
Desde ya agradezco!
  #2 (permalink)  
Antiguo 25/09/2009, 23:32
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: Ejecutar script desde submit

Hola,
Toma este ejemplo:
Código javascript:
Ver original
  1. <script>
  2. function funcion_al_apretar(){
  3. alert('Clic!');
  4. }</script><input type="button" onClick="funcion_al_apretar();" value="funcion_al_apretar!" />
Suerte
Salu2

PD: Ya me estan copiando el juego de cuanto vales
__________________
Half Music - www.halfmusic.com
  #3 (permalink)  
Antiguo 26/09/2009, 00:53
 
Fecha de Ingreso: julio-2009
Ubicación: Córdoba
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Ejecutar script desde submit

Muchisimas gracias pato12, pero esa es la prueva q ya habia hecho mil veces y no entiendo por que no funciona. Aver si alguien encuentra mi error:

Script:

Código PHP:
<script>
function publicar(){
var template_id = 283967935194; // Es el identificador de nuestra plantilla de publicación, más adelante se explica cómo se obtiene este ID. (Sustituir las xxxxxxxxx con ese número).
// En la ventana de publicación, el texto que saldrá para pedirle a los usuarios que publiquen el resultado.
var user_message_prompt = "Comenta algo sobre tu precio"; 
// El texto de muestra que saldrá a la hora de publicar.
var user_message = {value: ""}; 

// La información que introducimos en la plantilla, por ejemplo imágenes y textos fijos que acompañarán nuestro mensaje
var template_data={"app":"<a href='apps facebook.com/valorenoro'>vista de su Precio en Oro</a>", "resp":"", "images":[{"src":"granplan netne.net/oro.jpg", "href":"apps facebook.com/valorenoro/"}]};
var body_general="<br /><br /><b><? 
$kg 
$_POST["kg"];
$gr $_POST["gr"];
$m "U$D";
$suma = ($gr $kg);
$divi = ($suma 1000);
$precio = ($divi 33192);
echo 
"<div align='center'> <b>$m ".number_format($precio ,"," ,".")."</div></b>";""
?></b>";

var continuation = function() {};

Facebook.showFeedDialog( template_id, template_data, body_general, '', continuation, user_message_prompt, user_message );};
</script>
Formulario:

Código HTML:
<form method="post" onsubmit="publicar();">
<select name='kg' id='kg'>
<option value='20000'>20 Kg. </option>
<option value='21000'>21 Kg. </option>
<option value='22000'>22 Kg. </option>
<option value='23000'>23 Kg. </option>
<option value='24000'>24 Kg. </option>
<option value='25000'>25 Kg. </option>
<option value='26000'>26 Kg. </option>
<option value='27000'>27 Kg. </option>
<option value='28000'>28 Kg. </option>
<option value='29000'>29 Kg. </option>
<option value='30000'>30 Kg. </option>
<option value='31000'>31 Kg. </option>
<option value='32000'>32 Kg. </option>
<option value='33000'>33 Kg. </option>
<option value='34000'>34 Kg. </option>
<option value='35000'>35 Kg. </option>
<option value='36000'>36 Kg. </option>
<option value='37000'>37 Kg. </option>
<option value='38000'>38 Kg. </option>
<option value='39000'>39 Kg. </option>
<option value='40000'>40 Kg. </option>
<option value='41000'>41 Kg. </option>
<option value='42000'>42 Kg. </option>
<option value='43000'>43 Kg. </option>
<option value='44000'>44 Kg. </option>
<option value='45000'>45 Kg. </option>
<option value='46000'>46 Kg. </option>
<option value='47000'>47 Kg. </option>
<option value='48000'>48 Kg. </option>
<option value='49000'>49 Kg. </option>
<option value='50000'>50 Kg. </option>
<option value='51000'>51 Kg. </option>
<option value='52000'>52 Kg. </option>
<option value='53000'>53 Kg. </option>
<option value='54000'>54 Kg. </option>
<option value='55000'>45 Kg. </option>
<option value='56000'>56 Kg. </option>
<option value='57000'>57 Kg. </option>
<option value='58000'>58 Kg. </option>
<option value='59000'>59 Kg. </option>
<option value='60000'>60 Kg. </option>
<option value='61000'>61 Kg. </option>
<option value='62000'>62 Kg. </option>
<option value='63000'>63 Kg. </option>
<option value='64000'>64 Kg. </option>
<option value='65000'>65 Kg. </option>
<option value='66000'>66 Kg. </option>
<option value='67000'>67 Kg. </option>
<option value='68000'>68 Kg. </option>
<option value='69000'>69 Kg. </option>
<option value='70000'>70 Kg. </option>
<option value='71000'>71 Kg. </option>
<option value='72000'>72 Kg. </option>
<option value='73000'>73 Kg. </option>
<option value='74000'>74 Kg. </option>
<option value='75000'>75 Kg. </option>
<option value='76000'>76 Kg. </option>
<option value='77000'>77 Kg. </option>
<option value='78000'>78 Kg. </option>
<option value='79000'>79 Kg. </option>
<option value='80000'>80 Kg. </option>
<option value='81000'>81 Kg. </option>
<option value='82000'>82 Kg. </option>
<option value='83000'>83 Kg. </option>
<option value='84000'>84 Kg. </option>
<option value='85000'>85 Kg. </option>
<option value='86000'>86 Kg. </option>
<option value='87000'>87 Kg. </option>
<option value='88000'>88 Kg. </option>
<option value='89000'>89 Kg. </option>
<option value='90000'>90 Kg. </option>
<option value='91000'>91 Kg. </option>
<option value='92000'>92 Kg. </option>
<option value='93000'>93 Kg. </option>
<option value='94000'>94 Kg. </option>
<option value='95000'>95 Kg. </option>
<option value='96000'>96 Kg. </option>
<option value='97000'>97 Kg. </option>
<option value='98000'>98 Kg. </option>
<option value='99000'>99 Kg. </option>
<option value='100000'>100 Kg. </option>
</select>

<select name='gr' id='gr'>
<option value='00'> 00 gr. </option>
<option value='100'>100 gr. </option>
<option value='200'>200 gr. </option>
<option value='300'>300 gr. </option>
<option value='400'>400 gr. </option>
<option value='500'>500 gr. </option>
<option value='600'>600 gr. </option>
<option value='700'>700 gr. </option>
<option value='800'>800 gr. </option>
<option value='900'>900 gr. </option>
</select>
<input type='submit' />
</form> 
Desde ya vuelvo a agradecer.
  #4 (permalink)  
Antiguo 26/09/2009, 02:09
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ejecutar script desde submit

desde el punto de vista que lo estoy viendo realmente no te va a funcionar, o mas bien depende como lo estas usando. primero mencionar que codigo php se ejecuta en el servidor antes de enviar el documento al cliente. de modo que la parte php se interpreta a otro contenido y he aqui la parte que no me hace sentido. para poder leer datos desde $_POST, es necesario que el navegador envie informacion por metodo post. pero cuando el navegador carga este documento, me imagino que $_POST esta vacio de modo que no existe los elementos kg y gr. como antes dije, php se ejecuta primero en el servidor. eso significa que no hay forma que desde el lado cliente se pueda ejecutar codigo php.

y segundo, para que tu aplicacion realmente pueda funcionar, seria necesario que previamente exista informacion en $_POST, y me parece que esa no es tu meta. en tu caso, la solucion es usar javascript para realizar la operacion y construir el string.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 26/09/2009, 03:12
 
Fecha de Ingreso: julio-2009
Ubicación: Córdoba
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Ejecutar script desde submit

Mi problema no es con la variable $_POST, no tengo problema con que me tome como 0 esta variable al principio, mi unico problema es que no se ejecuta el script cuando le doy submit al formulario. Probablemente seria mas practico hacer la operacion con javascript, pero honestamente no tengo idea de como hacerlo :(
  #6 (permalink)  
Antiguo 26/09/2009, 03:29
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ejecutar script desde submit

no acostumbro a modificar codigos de otros, pero si me pongo a explicarte donde modificar seguro te perderas. consideralo una contribuccion poco usual de mi parte.
Código:
<script>
function publicar(form){
var template_id = 283967935194; // Es el identificador de nuestra plantilla de publicación, más adelante se explica cómo se obtiene este ID. (Sustituir las xxxxxxxxx con ese número).
// En la ventana de publicación, el texto que saldrá para pedirle a los usuarios que publiquen el resultado.
var user_message_prompt = "Comenta algo sobre tu precio"; 
// El texto de muestra que saldrá a la hora de publicar.
var user_message = {value: ""}; 

// La información que introducimos en la plantilla, por ejemplo imágenes y textos fijos que acompañarán nuestro mensaje
var template_data={"app":"<a href='apps facebook.com/valorenoro'>vista de su Precio en Oro</a>", "resp":"", "images":[{"src":"granplan netne.net/oro.jpg", "href":"apps facebook.com/valorenoro/"}]};

var kg = Number(form.kg.value), gr = Number(form.gr.value);
var precio = (kg + gr) / 1000 * 33192;
// no estoy seguro si esta linea de php debe evaluar la variable $D o si fue una forma de decir USD;
// $m = "U$D";
var body_general="<br /><br /><div align='center'> <b> USD " + precio.toLocaleString() + "</b></div>";
var continuation = function() {};

Facebook.showFeedDialog( template_id, template_data, body_general, '', continuation, user_message_prompt, user_message );};
</script>
y en <form>
Código:
<form method="post" onsubmit="publicar(this);">
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 26/09/2009, 13:12
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: Ejecutar script desde submit

Hola,
Yo para publicar con mis juegos en facebook... ago haci:
Código javascript:
Ver original
  1. <script src="http://static.ak.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/es_LA" type="text/javascript"></script>
  2. <script type="text/javascript">
  3. function Publicar(precio,por){
  4.     DATA={"precio":precio,"por":por,"images":[{"src":"http://www.halfmusic.com/miprecio/bolsa.png", "href":"<?=$apli?>"}]};
  5.     Facebook.showFeedDialog(XXXXXXXXXXXX,DATA,'',null,function(){});
  6. }
  7. // Otras funciones....
  8. Publicar("$<?=aPrecio($dat['precio'])?>","dia");
  9. </script>
Recuerda que el javascript de facebook... es distinto al normal: http://wiki.developers.facebook.com/index.php/FBJS
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #8 (permalink)  
Antiguo 26/09/2009, 15:52
 
Fecha de Ingreso: julio-2009
Ubicación: Córdoba
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Ejecutar script desde submit

Zerokilled, te agradezco muchísimo por tu ayuda; extrañamente si entendí los cambios que hiciste reemplazando al PHP con Javascript, sin embargo, por lo que dice pato12 (Que el javascript de facebook es distinto del normal) acabo no funcionandome.
Pato12, también te agradezco tu ayuda pero, tu script no es para aplicaciones en Iframe?
  #9 (permalink)  
Antiguo 26/09/2009, 19:32
 
Fecha de Ingreso: julio-2009
Ubicación: Córdoba
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Ejecutar script desde submit

Cita:
Iniciado por pato12 Ver Mensaje
Hola,
Yo para publicar con mis juegos en facebook... ago haci:
Disculpame, que es la funcion
Código PHP:
 $<?=aPrecio($dat['precio'])?>
  #10 (permalink)  
Antiguo 26/09/2009, 21:55
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: Ejecutar script desde submit

Hola,
No se si funciona con iframe.. yo lo ago con fbml..
La funcion aPrecio es una propioa.. pero es number_format ( igual al que tenes arriba xD )..
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:02.