2012-09-08 10 views
23

Estaba tratando de llamar a una función de php en particular en el envío de un formulario, tanto el formulario y los scripts php están en la misma página. Mi código está debajo. (No está funcionando y entonces necesito ayuda)Llamar a una función de PHP en particular en el formulario enviar

<html> 
    <body> 
    <form method="post" action="display()"> 
     <input type="text" name="studentname"> 
     <input type="submit" value="click"> 
    </form> 
    <?php 
     function display() 
     { 
      echo "hello".$_POST["studentname"]; 
     } 
    ?> 
    </body> 
</html> 

Respuesta

42

En la siguiente línea

<form method="post" action="display()"> 

la acción debe ser el nombre de su script y debe llamar a la función, algo como esto

<form method="post" action="yourFileName.php"> 
    <input type="text" name="studentname"> 
    <input type="submit" value="click" name="submit"> <!-- assign a name for the button --> 
</form> 

<?php 
function display() 
{ 
    echo "hello ".$_POST["studentname"]; 
} 
if(isset($_POST['submit'])) 
{ 
    display(); 
} 
?> 
+0

Thankzzz .. funciona –

+0

Usted es bienvenido :-) –

+0

Error: La URL/path/to/update() solicitada no se encontró en este servidor. – NeosFox

1

PHP se ejecuta en un servidor, Su navegador es un cliente. Una vez que el servidor envía toda la información al cliente, no se puede hacer nada en el servidor hasta que se realice otra solicitud.

Para realizar otra solicitud sin actualizar la página, tendrá que examinar ajax. Mira en jQuery, ya que hace peticiones ajax fáciles

0

Si desea llamar a una función de clic de botón de envío a continuación, usted tiene
utilizar AJAX o jQuery, si usted quiere llamar a su función de PHP después de la presentación de la forma se pueden hacer que como:

<html> 
<body> 
<form method="post" action="display()"> 
<input type="text" name="studentname"> 
<input type="submit" value="click"> 
</form> 
<?php 
function display() 
{ 
echo "hello".$_POST["studentname"]; 
} 
if($_SERVER['REQUEST_METHOD']=='POST') 
{ 
     display(); 
} 
?> 
</body> 
</html> 
8

que no es necesario el código

<?php 
function display() 
{ 
echo "hello".$_POST["studentname"]; 
} 
?> 

su lugar, puede comprobar si el formulario es enviado por el control de las variables de correos usando isset.

aquí va el código

if(isset($_POST)){ 
echo "hello ".$_POST['studentname']; 
} 

clic aquí para el manual de PHP para isset

+0

¿No ejecutaría esto la función de actualizar la página? No es que en este caso sea peligroso, pero estoy haciendo una función de guardar. – Tyrannogina

5

Suponiendo que el script se llama x.php, prueba esta escritura

<?php 
    function display($s) { 
     echo $s; 
    } 
?> 
<html> 
    <body> 
     <form method="post" action="x.php"> 
      <input type="text" name="studentname"> 
      <input type="submit" value="click"> 
     </form> 
     <?php 
      if($_SERVER['REQUEST_METHOD']=='POST') 
      { 
       display(); 
      } 
     ?> 
    </body> 
</html> 
0

este código

<?php 
    if(isset($_POST['submit'])){ 
     echo 'Hello World'; 
    } 
?> 

<html> 
    <body> 
     <form method="post"> 
      <input type="text" name="studentname"> 
      <input type="submit" name="submit" value="click"> 
     </form> 
    </body> 
</html> 
Cuestiones relacionadas