Как я могу вызвать функцию PHP в отдельном файле, используя Ajax, но без jQuery? - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть страница, где пользователь может создавать дочерние задания в родительском задании, нажимая кнопку «Добавить новый» и вызывая появление новой строки, которую они затем заполняют и сохраняют.Строка имеет автоматически сгенерированный ссылочный номер, который получается путем вызова сценария PHP в другом файле.

Проблема состоит в том, что каждая новая строка имеет одинаковый ссылочный номер, поэтому мне нужен способ убедиться, что этот номеруникальный.Я думал отправить второй параметр в функцию текущего ссылочного номера, чтобы увидеть, совпадает ли он с текущим номером, и, если это так, сгенерировать другое число.Я думал о том, чтобы использовать Ajax.

Я пробовал Ajax, но он ничего не отображает в консоли (чтобы проверить, что он работает).Страница использует MooTools, поэтому я не могу использовать jQuery.Это моя первая попытка Ajax.

Это часть шаблона:

<script id="connectedjobtemplate" type="text/template">
    <tr id="childjobrow3" class="odd" data-row-id="3">
        <td>
            <input data-row-id="3" id="reference[3]" name="childjobid[3][reference]" value="<%= ref %>" class="ref" size="14" style="background-color: transparent; border: none;" />
        </td>
    </tr>
</script>

Это проверяет щелчок на кнопке Add New и вызывает функцию для добавления новой строки:

$(document.body).addEvent('click:relay(#add-new-row)', function (e, el) {
                try{
                    e.preventDefault();
                    addChildJobRow();
                }catch(e){
                    .
                }
            });

Это функция addChildJobRow:

function addChildJobRow() {
                try {
                    lastrow++;
                    var refNum;
                    var xhr = new XMLHttpRequest();
                    xhr.onreadystatechange = function() {
                        if (this.readyState == 4 && this.status == 200) {
                            console.log(this.responseText);
                            refNum = this.responseText;
                        }
                    };
                    xhr.open('GET', '<?php echo $this->MJob->getNewJobRef(232); ?>', true);
                    xhr.onload = function() {
                        console.log('Test');
                    };
                    xhr.send();
                    //refNum = '<?php echo $this->MJob->getNewJobRef(232); ?>';
                    Elements.from(connectedjobtemplate({
                        rownum: lastrow,
                        cl: cl,
                        ref: refNum,
                        nysid: '',
                        dinNum: '',
                        warrantNum: ''
                    })).inject($('newChildJobTable'));
                } catch (e) {
                    .
                }
            }

На консоли ничего не отображается.Я думаю, что проблема может быть в том, что PHP отправляется в виде URL-адреса в строке xhr.open, но я не знаю достаточно Ajax, чтобы знать, в этом ли проблема.

Заранее спасибо за любыепомощь.

1 Ответ

0 голосов
/ 15 апреля 2019

Поговорив с моим боссом, он хочет, чтобы я не использовал Ajax и не вызывал функцию PHP, просто прочитал номер родительского задания и увеличил каждое из дочерних заданий на 1, используя JavaScript.

Спасиботем, кто откликнулся.

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