Comunidad de diseño web y desarrollo en internet online

Ejecutar una función php en el evento onclick de un botón

Citar            
MensajeEscrito el 08 Mar 2010 10:05 pm
Hola

Tengo un botón, y en el evento onclick quiero que se ejecute dos funciones, una sería una función php y otra una función javascript que envia el formulario. Lo que no sé es como hacerlo, en teoria la estructura sería así:

Código HTML :

<input type button onclick="funcionPHP(document.getElementById('mitextfield').value);formulario.submit();"


Código PHP :

<?php
 funcionPHP($mivariable){
   //aquí hago algo con la variable
}
?>


Mi duda y es lo que no me sale, es como se escribe la función php, dentro del evento onclick, para que pase el valor de un textfield, a una función php.

Estoy provando y no encuentro la forma de hacerlo.

Saludos

Por Dav1d

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Mar 2010 10:08 pm
Debes usar Ajax por lo que veo.

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

firefox
Citar            
MensajeEscrito el 08 Mar 2010 11:28 pm
No no no no!!!!!!!!....
antes de iniciar a programar tienes que leeer... PHP no esta orientado a "click", y mucho menos como lo tienes en tu ejemplo, PHP se ejecuta en el servidor y responde los HTML que ves en tu explorador, en dado caso el "click" deve de correspoder a programacion cliente (JavaScript), estas completamente desubicado en cuanto a la programación en PHP,

Por wariodiaz

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Mar 2010 08:48 am
La verdad, lo que quiero hacer es lo siguiente, quiero escribir antes de enviar el formulario en un archivo de texto.

<input type="button" onclick="Antes de enviar, escribir en un archivo de texto, en el servidor";formulario.submit()">

Lo que quiero escribir es el valor de un document.getElementById('mitexto').value , Javascript creo que no escribe texto en el servidor, y si lo hace el navegador, tiene que tener pocos permisos, pero php si lo hace, por eso he pensado, que recuperando el valor de document.getElementById('mitexto').value, y pasarlo a php es le mejor opción.

Saludos

Por Dav1d

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Mar 2010 06:51 pm
Lo que dices no tiene sentido y es señal de que no entiendes cómo funciona la web.

PHP es un lenguaje que se ejecuta en el servidor. JavaScript se ejecuta en el cliente. El cliente no tiene forma de saber y no necesita saber qué se está ejecutando en el servidor y recíprocamente el servidor no sabe ni necesita saber qué se está ejecutando en el cliente.

Cuando invocas un script PHP con tu navegador lo que ves es *el resultado* de esa ejecución. Es decir, todo el código del script PHP al momento de tú visualizar la página ya se ejecutó y no hay vuelta atrás. Para ejecutar otra cosa tienes que invocar el script.

Esto el cliente (navegador) solo puede hacerlo enviando una petición al servidor, es decir, cargando más páginas desde el servidor.

El navegador no entiende de PHP así que mandar a ejecutar una función que está en el servidor desde el cliente no tiene sentido simplemente porque el navegador no sabe ni puede saber cuál, cómo o dónde está esa función. La única manera de hacerlo es que el navegador pida al servidor una página PHP donde esté esa función y para pasarle parámetros tienes que hacerlo mediante los parámetros en la URL.

"Curiosamente" esto último es exactamente lo que hace un formulario web (tag <form> ) o un hiperenlace (tag <a> ). Así que lo que quieres hacer simplemente se puede hacer con un formulario.

Dices que "Antes de enviar, escribir en un archivo de texto, en el servidor". Pero para hacer eso primero tienes que enviar algo al servidor, pero el formulario ya está enviando algo al servidor.

Habiendo dejando en claro que lo que pretendías hacer no se puede te pregunto ¿exactamente cuál es el problema que quieres resolver?, ¿por qué es importante que escribas en ese archivo de texto en el servidor antes de enviar otra cosa?. Si nos lo comentas quizá podamos encontrar una solución completa a tu problema.

Un saludo.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 24 Abr 2010 09:20 pm
En teoria se podria ahcer lo que quieres pero para eso necesitas Saber Javascript para no lairte Utilziar un FrameWork como MOOTOOLS que incorpora AJAX por asi decirlo
esta seria la solucion primero
*tienes el formulario
*al escribir o pulsar cada tecla invocas una funcion en javascript que mande lo que tienes a php
*y que php retorne lo que introdujiste medianje xml o JSON dependiendo de la forma como quieras obtener los datos Medainte AJAX
*PHP puedes usar la funcion file_put_contents(); y File_get_contents() ahora la cuestion es que si o si tienes que saber programar a nivel medio tanto en Javascript y PHP a una cosa mas tienes que aprender a usar FLAGS auq e con las FLAGS indicas al momento de crear un archivo si lo que introduces mediante la funcion file_put_contents se Agrega a lo que tenia el archivo o que se Borre lo que tiene y se agrege lo nuevo

espero haberme hecho entender :)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Feb 2012 03:04 am
Oye entonces porque cuanto uno hace un fichero php que contiene un formulario dice:
<form method="post" action="archivo.php">
Se supone que ese formulario esta en el cliente o en el servidor? porque de todas maneras en ese codigo uno ya tiene que saber donde esta el fichero archivo.php, si no, no lo podria incluir en el codigo del formulario, entonces este fichero tambien se ejecuta desde el servidor, y si los archivos html y php se deben subir al servidor, ¡los ficheros javascript no deberian subirse al servidor tambien? todo se ejecuta en el servidor, o en algun momento se crea algun fichero que deba quedar en el pc de un cliente?
Oye explicame esto mejor quieres porfa

Por lumatobu2

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Feb 2012 03:00 pm
los lenguajes de servidor como PHP y otros, son interpretados en el Servidor, el Lenguaje javascript se ejecuta en el Navegador , el objetivo de los frameworks en Javascript es que tengas que escribir solo una vez ya que cada navegador web es distinto a otro y esos mismos tienen funciones distintas o son las mismas funciones con distinto nombre , y para no ahcerte lios es mejor usar frameworks, ahora , la comunicacion entre cliente y servidor es un Dialogo
Cliente->Quiero la pagina /index.php
Servidor->te muestro la pagina /index.php

AJAX es una forma de Enviar Peticiones osea iniciar dialogo Cliente - Servidor, y obtener los Datos del Servidor y manipularlos , facebook, hace el uso de esto, , y al hacer eso da la sensacion de velocidad
aca te dejo un ejemplo

http://www.formatoweb.com.ar/ajax/ejemplo_basico_xmlhttprequest_post.php

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

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