Всем привет, я только начал изучать php. Возникла проблема при создании калькулятора. Не получается вывести значение echo из функции на страницу html, конкретно в определённый <div> с классом content. Подскажите с помощью какого инструмента языка я могу это сделать echo выводится как уведомление на экране, а необходимо чтобы результат расчёта появлялся в диве c классом content. !на беке должны быть только расчеты и функции, никакго html кода. Данный калькулятор написан на языках php, js с использованием фреймворка vue.js Во вложении разместил файл с кодом. Основная проблема в этой части кода: PHP: <?php $name = $_POST['name']; if (isset($_POST['name']) && preg_match('#^[a-z\d\s*/+.()_-]+$#si', $_POST['name'])) { //Используем регулярное выражение для калькулятора echo $_POST['name'] . ' = ' . eval('return ' . $_POST['name'] . ';'); //eval-исполнит код находящийся в строке } else echo ""; //выводим Errror!! при недопустимых значениях рассчитанное значение необходимо отобразить в диве файла index.html <div class="content">
Магентой специально выделили - чтоб нахрен зрения лишить?)))) по теме - скорее всего надо json отдавать... где vue код?
vue код в файле js, данные отдавал в формате HTML методом Ajax Код JS: var vue = new Vue({ el: '#app', data: { result: '', numseven: [7], numeight: [8], numnine: [9], opplus: ['+'], numfour: [4], numfive: [5], numsiks: [6], opminus: ['-'], numone: [1], numtwo: [2], numthree: [3], opshare: ['/'], numzero: [0], dot: ['.'], opmulti: ['*'], }, methods: { input: function(char) { //this.result = this.result.toString(); this.result+=char; }, calc: function() { } } }) $("#send").on("click", function() { var name = $("#name").val().trim(); if(name == "") { $("#errorMess").text("Введите число"); return false; } $("#errorMess").text(""); $.ajax({ url: 'bek.php', type: 'POST', cache: false, data: { 'name': name }, dataType: 'html', // beforeSend: function() { //$("#sendMail").prop("disabled", true); //}, success: function(data) { alert(data); //$("#send").prop("disabled", false); } }); });
дикая мешанина..... зачем если используете Vue - там еще примешивать и JQuery? ну и главное - вы при получении результата выводите его alert ом - alert(data); если нужно в какой то элемент DOM то так и делйте Код (Javascript): $('.content').html(data);
Спасибо, что уделяете мне время Vue использую для работы с кнопками, а JQuery для Ajax-запроса на сервер Проблема на в Алерте, если я закоменчу его, вывод так же будет производится. Алерт добавлялся для проверки работоспособности. Вывод идёт с бека(файл bec.php), за счёт: echo, а я хочу что бы "результат вычислений" с бека выводился как раз в в диве с классом контент Стоит менять саму функцию на беке? PHP: <?php $name = $_POST['name']; if (isset($_POST['name']) && preg_match('#^[a-z\d\s*/+.()_-]+$#si', $_POST['name'])) { //Используем регулярное выражение для калькулятора echo $_POST['name'] . ' = ' . eval('return ' . $_POST['name'] . ';'); //eval-исполнит код находящийся в строке } else echo ""; //выводим Errror!! при недопустимых значениях
Vue тоже умеет Ajax запросы.... это его хлеб ну комментируйте и проверьте... если нет никаких команд которые заставляют выводить что-либо. почему это должно отображаться? вы пробовал заменить алерт моей конструкцией?
Спасибо большое) вы мне очень помогли) --- Добавлено --- Спасибо, вы мне очень помогли, все сработало)