За последние 24 часа нас посетил 22531 программист и 1279 роботов. Сейчас ищут 722 программиста ...

Возврат рассчитанного значения с бека(php) на страницу html.

Тема в разделе "Прочие вопросы по PHP", создана пользователем Tigerapp, 9 янв 2022.

Метки:
  1. Tigerapp

    Tigerapp Новичок

    С нами с:
    9 янв 2022
    Сообщения:
    4
    Симпатии:
    0
    Всем привет, я только начал изучать php. Возникла проблема при создании калькулятора.

    Не получается вывести значение echo из функции на страницу html, конкретно в определённый <div> с классом content. Подскажите с помощью какого инструмента языка я могу это сделать
    echo выводится как уведомление на экране, а необходимо чтобы результат расчёта появлялся в диве c классом content.
    !на беке должны быть только расчеты и функции, никакго html кода.
    Данный калькулятор написан на языках php, js с использованием фреймворка vue.js

    Во вложении разместил файл с кодом.

    Основная проблема в этой части кода:

    PHP:
    1. <?php
    2.    $name = $_POST['name'];
    3.  
    4.    if (isset($_POST['name']) && preg_match('#^[a-z\d\s*/+.()_-]+$#si', $_POST['name'])) { //Используем регулярное выражение для калькулятора
    5.     echo $_POST['name'] . ' = ' . eval('return ' . $_POST['name'] . ';'); //eval-исполнит код находящийся в строке
    6. } else echo ""; //выводим Errror!! при недопустимых значениях
    7.    
    рассчитанное значение необходимо отобразить в диве файла index.html <div class="content">
     

    Вложения:

    • Goodcalc.zip
      Размер файла:
      28,7 КБ
      Просмотров:
      1
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    738
    Адрес:
    Татарстан
    Магентой специально выделили - чтоб нахрен зрения лишить?))))

    по теме - скорее всего надо json отдавать...
    где vue код?
     
  3. Tigerapp

    Tigerapp Новичок

    С нами с:
    9 янв 2022
    Сообщения:
    4
    Симпатии:
    0
    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);
    }
    });


    });
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    738
    Адрес:
    Татарстан
    дикая мешанина..... зачем если используете Vue - там еще примешивать и JQuery?

    ну и главное - вы при получении результата выводите его alert ом - alert(data);

    если нужно в какой то элемент DOM то так и делйте
    Код (Javascript):
    1. $('.content').html(data);
     
    Tigerapp нравится это.
  5. Tigerapp

    Tigerapp Новичок

    С нами с:
    9 янв 2022
    Сообщения:
    4
    Симпатии:
    0
    Спасибо, что уделяете мне время

    Vue использую для работы с кнопками, а JQuery для Ajax-запроса на сервер

    Проблема на в Алерте, если я закоменчу его, вывод так же будет производится. Алерт добавлялся для проверки работоспособности.

    Вывод идёт с бека(файл bec.php), за счёт: echo, а я хочу что бы "результат вычислений" с бека выводился как раз в в диве с классом контент

    Стоит менять саму функцию на беке?

    PHP:
    1. <?php
    2.    $name = $_POST['name'];
    3.  
    4.    if (isset($_POST['name']) && preg_match('#^[a-z\d\s*/+.()_-]+$#si', $_POST['name'])) { //Используем регулярное выражение для калькулятора
    5.     echo $_POST['name'] . ' = ' . eval('return ' . $_POST['name'] . ';'); //eval-исполнит код находящийся в строке
    6. } else echo ""; //выводим Errror!! при недопустимых значениях
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    738
    Адрес:
    Татарстан
    Vue тоже умеет Ajax запросы.... это его хлеб
    ну комментируйте и проверьте... если нет никаких команд которые заставляют выводить что-либо. почему это должно отображаться?
    вы пробовал заменить алерт моей конструкцией?
     
    Tigerapp нравится это.
  7. Tigerapp

    Tigerapp Новичок

    С нами с:
    9 янв 2022
    Сообщения:
    4
    Симпатии:
    0
    Спасибо большое) вы мне очень помогли)
    --- Добавлено ---
    Спасибо, вы мне очень помогли, все сработало)