2012-05-23 4 views
0

У меня есть страница PHP скрипт с формой, как это:Выполнить функцию PHP, когда нажмите на кнопку

<form method="post" action="clientmanager.php"> 
<input type="text" name="code_client" id="code_client" /> 
<input type="submit" value="Save" /> 
</form> 

В моем файле «clientmanager.php», у меня есть функция, например «addClient() ». Я хочу нажать кнопку и только вызвать функцию «addClient()» в файле «clientmanager.php» вместо вызова всего файла «clientmanager.php», так как я мог это сделать? Thx !!!!

+0

Вы не можете сделать этого. –

+0

Возможный дубликат [Вызов функции PHP из формы действия] (http://stackoverflow.com/questions/10689164/call-php-function-from-action-form) –

+0

Если эта функция представляет свой собственный вызов ресурса HTTP, Я хочу реорганизовать его из этого файла и на свой собственный ресурс, чтобы вы могли его напрямую вызвать. Вы также можете передать некоторый флаг вместе с данными POST и условно проверить этот флаг в 'clientmanager.php', но это плохой дизайн. Похоже, что 'clientmanager.php' имеет больше, чем нужно, и должен быть разбит на отдельные единицы. – David

ответ

1

Добавить это в верхней части файла:

if (isset ($_POST ['code_client'])) addClient(); 

Тем не менее, следует рассмотреть возможность использования разных настроек - обработка форм, как это считается плохой практикой . Возможно, создайте отдельный файл, используйте OOP, MVC, фреймворк, что угодно, кроме этого.

0

Вы можете сделать это над jquery (ajax).

  1. Вызов библиотеки JQuery в голове

  2. Вызов clientmanager.php на этот код:

my_form.php

.... 
<script type="text/javascript" src="jquery.js"></script> 
... 

<form method="post" action=""> 
<input type="text" name="code_client" id="code_client" /> 
<input id="my_button" type="button" value="Save" /> 
</form> 


<div id="response_div"></div> 


<script type="text/javascript"> 

    $(document).ready(function(){ 

     $("#my_button").click(function(){ 


       $.post("clientmanager.php", {code_client: $('#code_client').val()}, function(data){ 

        if(data.length >0) { 

         $('#response_div').html(data); 

        }//end if 
       }); 


     }); 

    }); 

</script> 

clientmanager.php

<?php 

echo $_POST['code_client']; 

?> 
Смежные вопросы