2012-09-08 18 views
23

Próbowałem zadzwonić do konkretnej funkcji php w przesłaniu formularza zarówno formularz, jak i skrypty php znajdują się na tej samej stronie. Mój kod jest poniżej. (To nie działa, więc potrzebuję pomocy)Wywołanie konkretnej funkcji PHP na formularzu Wyślij

<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> 

Odpowiedz

42

W kolejnym wierszu

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

akcja powinna być nazwa skryptu i należy wywołać funkcję, coś w tym

<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..its working –

+0

Serdecznie zapraszamy :-) –

+0

Błąd: Żądanego adresu URL/path/to/update() nie znaleziono na tym serwerze. – NeosFox

1

PHP działa na serwerze, Twoja przeglądarka jest klientem. Gdy serwer wyśle ​​wszystkie informacje do klienta, nic nie da się zrobić na serwerze, dopóki nie zostanie wysłane inne żądanie.

Aby złożyć kolejną prośbę bez odświeżania strony, trzeba będzie zajrzeć do ajax. Spójrz na jQuery jak to czyni żądań AJAX łatwe

0

Jeśli chcesz wywołać funkcję na kliknięcie przycisku submit to masz
używać AJAX lub jQuery, jeśli chcesz zadzwonić do funkcji php po złożeniu formularza ty można to zrobić jako:

<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

nie trzeba ten kod

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

Zamiast tego, można sprawdzić, czy formularz jest składany przez sprawdzanie zmienne Post używając isset.

tu idzie kod

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

kliknij tutaj instrukcji PHP isset

+0

Czy to nie wykonałoby funkcji odświeżania strony? Nie to, że w tym przypadku jest niebezpieczne, ale robię funkcję składowania. – Tyrannogina

5

Zakładając, że scenariusz jest nazwany x.php, spróbuj tego

<?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

napisać ten kod

<?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> 
Powiązane problemy