Показать сообщение отдельно
  #27 (permalink)  
Старый 31.07.2017, 19:18
Аспирант
Отправить личное сообщение для Stenli Посмотреть профиль Найти все сообщения от Stenli
 
Регистрация: 25.06.2017
Сообщений: 36

Сообщение от Nexus Посмотреть сообщение
Попробовал затолкать в textarea php-код, код закомментирован браузером не был...

Оборачивать даты в php-код на стороне клиента по меньшей мере смешно.
Попробую снова как-то с другой стороны зайти - пошагово описать. Только прошу вас очень: правильность обращения и вызова даты не комментируйте. Я понял ваше отношение - смешно, неправильно, хрень и т.д.

1. Я создал для себя страничку на локальном компе index.html - это моя страничка на моем компе и больше ею никто не пользуется - я клиент в этом случае для сервера и один единственный.
2. На этой страничке есть три (всего три) элемента: textarea с id="insertArea", textarea с id="pastArea", button с id="sendTo"
3. В textarea первое я вставляю HTML-код одностраничника со всеми тегами, переносами, списками , это понятно из названия id этого поля.
4. Нажимаю кнопку с id="sendTo", которая запускает jQuery.
5. jQuery обрабатывает текст, ищет выражения /\d{2}\.\d{2}\.\d{4}/g (даты) и заменяет их на <?= date('d.m.Y', strtotime('-3 day'));?>
6. Когда он заменит все даты в HTML-коде, он выгружает результат во второе textarea, у которого тоже говорящее id.
7. Я копирую измененный код из второго поля и вставляю его обратно в одностраничник.
8. Выгружаю одностраничник на сервер, где на него могут зайти все кто желает. Внутри одностраничника есть php-код, который обрабатывается сервером и выдает клиенту HTML-код с датой сдвинутой на -3.

Так вот, обработка jQuery, как вы говорите на стороне клиента нужна мне. Мне, Stenli, чтобы вставить php-код в HTML-код лендинга. Все остальные посетители не будут видеть этот php-код, они будут видеть дату.

Проблема возникает на 5-м пункте. Здесь почему-то то ли jQuery, то ли браузер добавляют комментарии к php-коду вида <!-- -->

Еще раз HTML:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/main.css">
    <script type="text/javascript" src="assets/js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script type="text/javascript" src="assets/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="assets/js/preland.js"></script>
    <title>Preland convert</title>
</head>

<body>



<div class="container">


    <div class="row">



            <div class="text-center" style="margin-top: 20px;">
                <button type="button" name="sendTo" value="Send to" id="sendTo" class="btn btn-success">Адаптировать</button>
            </div>
            <div class="text-center" style="font-size: 12px; margin: 10px;">Каждый новый текст требует обновления страницы (F5 на клавиатуре или кнопка обновить <span class="glyphicon glyphicon-repeat"></span>)</div>
            <hr />

            <div class="col-lg-8">
                <label>Введите html-текст, который нужно адаптировать (правая кнопка мыши + вставить или Ctrl+V)</label>
                <textarea class="form-control" name="insertArea" id="insertArea" cols="80" rows="10"></textarea>
            </div>


            <div class="col-lg-8" style="margin-top: 10px;">
                <label>Скопируйте/вырежьте адаптированный html-текст (правая кнопка мыши + копировать или Ctrl+C/X)</label>
                <textarea class="form-control" name="pastArea" id="pastArea" cols="80" rows="10"></textarea>
            </div>
            <br>



    </div>
</div>


</body>
</html>

И еще разок jQuery
$(document).ready(function() {

    var Final = '';

    $('#sendTo').on('click', function () {

        //var insertData = $('#insertArea').val();
        //
        var bodyVal = $('#insertArea').val();
        bodyVal = bodyVal.substring(bodyVal.indexOf('<body>')+6, bodyVal.lastIndexOf('</body>')).trim();
        var div = $("<div>", {html : bodyVal});

// replace dates
        var reg = /\d{2}\.\d{2}\.\d{4}/g;
        $(div).html(function (i,h) {
                return h.replace(reg, '<?=date(' + 'd.m.Y' + ', strtotime(' + '-3 day' + '));?>');
        });

// display result

        Final += div.html();
        $('#pastArea').val(Final);

    });

});


И да, спасибо за терпение, мужики. Да, Бог с ним, и laimas тоже спасибо.

Последний раз редактировалось Stenli, 31.07.2017 в 19:36.
Ответить с цитированием