Запустите файл php из HTML-кнопки с Ajax и Javascript - PullRequest
0 голосов
/ 18 мая 2019

У меня есть функция php, которую я хотел бы запустить с помощью кнопки Html. Функция php находится в отдельном файле, чем кнопка Html.

Так что мне удалось сделать это с:

<input type="submit" name="test" id="bt1" value="RUN" /><br/>

Но это не то, что я хочу сделать. Я хочу вызвать функцию php с помощью:

<button id="bt1" class="button button5">< Random </button>

, так как есть другие действия, связанные с кнопкой, которые должны выполняться одновременно.

Примечание: моя функция php получает информацию из файла json.

У меня есть 3 файла.

Файл 1 (AF.php), где находится кнопка Файл 2 (Display.php) Это где мои скрипты jquery / javascript / ajax Файл 3 (Names.php) Здесь находится функция php. Я хочу использовать кнопку из файла 1 для запуска функции php из файла 3.

Итак, вот что я попробовал:

Файл 1 (AF.php)

 button id="bt1" class="button button5">< R30K</button>

Файл 2 (Display.php)

$(document).ready(function () {
            $("#bt1").on("click", (function () {
                getName("Names.php");
            })
        });
  function getName(Names.php) {
        $.ajax({
            url:"Names.php" + Names.php,
            success:function (Names.php) {
                $("#res" + Names.php).html(result)
            }
        });

Файл 3 (Names.php)

<?php

    function group1(){
        $jsondata = file_get_contents("Clients.json");
        $json = json_decode($jsondata, true);
        $output = '<ul>';
        foreach($json['Reps']as $reps){
            $output .='<h4>' .$reps['Client']."<h4>";
            $output .= "<li>".$reps['repCode']."</li>";
        }

        $element = $json['Reps'][array_rand($json['Reps'])];
        echo $element['Client'];
        echo " ";
        echo $element['repCode'];
    }

    if(array_key_exists('bt1',$_POST)){
        group1();
    }

    ?>

Желательным результатом было бы то, что я могу запустить свою функцию из файла 3 с помощью этого HTML-кнопки из файла 1.

Ваша помощь очень ценится.

1 Ответ

1 голос
/ 18 мая 2019

Ваш HTML с этой кнопкой и ваш код jQuery должны находиться в том же документе, который загружен вашим браузером, либо помещая их в тот же файл, либо используя php include / require.

Этот код jQuery будетне запускается, потому что вы помещаете «Names.php» везде (почему?).Попробуйте это:

$( function(){
    $("#bt1").click(function() {
        $.ajax({
            url: 'Names.php',
            type: 'get',
            success: function(data) {
                $("#res").html(data);
            },
        });
    });
});

Это поместит строку ответа ajax в любой элемент с id="res".

Код был протестирован и работает.

Редактировать:

Я только что заметил, что вы используете $_POST в своем php-скрипте, чтобы проверить, нажата ли кнопка, поэтому вам придется изменить функцию jQuery ajax:

Изменить type: 'get', до type: 'post',

Добавить data: 'bt1=1', после 'type: 'post'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...