вызов функции php при нажатии кнопки

0

Мне нужно вызвать функцию PHP, когда я нажимаю кнопку на странице html.

<script>
 $(document).ready(function(){
    $('#submit').click(function() {

    $.ajax({
    type: "POST",
    url: "hello.php",
    }).done(function(  ) {
    alert( "Data Saved: ");
    });    
});

});
</script>

<input type="submit" name="submit"  id="submit" value="Buy!" />

hello.php:

   <?php
   if(isset($_REQUEST['submit']))
   {
      counterminus();
   }
   function  counterminus()
   {
      echo "method called";
   }

Я пробовал вышеупомянутый метод, но он не работает должным образом. Мне нужно напечатать строку в методе counterminus(), когда я нажимаю кнопку.

  • 1
    вы пропустите <form action = "hello.php"> <input type = "submit" name = "submit" id = "submit" value = "Buy!" /> <Форма> Тег /
  • 0
    php - это server side language не client side язык, такой как javascript вы не можете вызвать функцию php в button click event ... но да, вы можете использовать ajax для вызова php-файла с вашей функцией ...
Теги:

5 ответов

0
Лучший ответ
<script>
$(document).ready(function(){
$('#submit').click(function() {

 var val = $('#submit').val();
$.ajax({
type: "POST",
data:"var="+val,
url: "hello.php",
}).done(function(  ) {
alert( "Data Saved: ");
});    

});

});

приведенный выше сценарий будет POST имя переменной var со значением submit to hello.php

на hello.php

 echo $_POST['var'];

приведет к "покупке!".

так

  if(isset($_POST['var'])){
  .....
  .....
  • 0
    Я не думаю, что это поможет, но вы должны объяснить свою логику.
  • 0
    я думаю, что нет никаких скобок / данных формы, поэтому я не уверен, что отправка фактически отправлена. Добавление строки данных гарантирует, что что-то будет отправлено в hello.php
Показать ещё 7 комментариев
0

Используйте exit в php. теперь он возвращает строку "method called"

   if(isset($_REQUEST['submit']))
   {
      counterminus();
   }
   function  counterminus()
   {
      echo "method called";
      exit;
   }
0

передать переменную submit с URL-адресом

попробуйте следующий код

$.ajax({
        type: "POST",
        url: "1.php?submit=",
        }).done(function( data ) {
        alert( "Data Saved: "+data);
        }); 

или u может передавать значения в виде данных

$.ajax({
            type: "POST",
            url: "1.php",
            data: {submit:""},
            }).done(function( data ) {
            alert( "Data Saved: "+data);
            }); 
0

Все выглядит хорошо для меня, за исключением того, что вы не печатаете данные, возвращаемые вашей AJAX вызова, который должен быть предоставлен в качестве параметра вашего done обратного вызова.

Попробуй это:

$.ajax({
    type: "POST",
    url: "hello.php",
}).done(function(data) {
    alert( "Data Saved: " + data);
});    
0

если в любом случае вы помещаете кнопку ввода = "отправить" внутри тега формы. вы должны остановить событие от выполнения. Поместите это на свой вызов ajax. Поскольку форма будет размещаться до завершения вызова ajax.

<script>
$(document).ready(function(){
      $('#submit').click(function(e) {
               e.preventDefault();
               $.ajax({
                     type: "POST",
                     url: "hello.php",
                      }).done(function(  ) {
                             alert( "Data Saved: ");
                                });    
         });

         });
</script>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню