Передача переменной из php в js без перезагрузки страницы
Через ajax передаю id блоков на которых нажали в php и сохраняю в файле из файла нужные значения обратно передаю в js но надо без перезагрузки страницы передать, попробовал json но что то делаю не так и скрипт не работает, помогите разобраться видимо какие то глупости написал.
<html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> </head> <body> <?php $myFile = "count.txt"; $lines = file($myFile);//file in to an array $ipp =1; $itt = $ipp+1; if ($lines[$itt] == 0) { echo $lines[$ipp]; // если следующая строка после 1 элемента массива 1+1 =2 2 строка равно нулю то выводим 1 строку } if ($lines[$itt] != 0) { // иначе если не равно нулю то к ipp добавляется по циклу 1 и проверяется пока не выполнится условие при котором itt равно нулю for($i = 0; $i > $lines[$itt] == 0; $i++){ $ipp = $ipp +1; $itt = $ipp+1; } } if ($lines[$itt] == 0) { $uil = $lines[$ipp]; $ppp = 0; $eee = $ppp + $uil; echo $uil; //line 2 echo json_encode($eee); } ?> <script type="text/javascript"> $(function(){ $('div').each(function (index, element) { $(this).not( "#y" ).not( "#ii" ).not( "#left" ).not( "#right" ).not( "#top" ).not( "#boot" ).not( "#rt" ).not( "#poleslov" ).not( "#teksts" ).click(function() { var a = $(element).attr("id"); //https://dmitrylavrik.ru/blog/php/zagruzka-izobrazhenij-na-server здесь как загружать изображения $.ajax({ url:'index.php', type : "POST", data:{test1:a}, success:function(data){ alert ("<? echo $eee ?>"); } }) }) var tlllll = JSON.parse( "<?php json_encode($eee) ?>"); alert(tlllll); }); }); </script> <?php // if (isset($_POST['test1'])) { $ffff = $_POST['test1']; $fd = fopen("count.txt", 'a'); fwrite($fd, $ffff . PHP_EOL); fclose($fd); } ?> </body> </html> |
И где здесь ajax? Тут вообще пусто, что там нажимается, что передается, какие проблемы, разве можно понять?
|
JSON.parse( "<?php print json_encode($eee) ?>");
|
micscr, Амай, здесь не нужен JSON.parse, клиент на странице получит уже готовый объект/массив.
|
Цитата:
|
В общем есть множество мелких блоков html, через пхп цикл создал их и так же через цикл пхп задал каждому блоку уникальный id получилась сетка она как бы скрыта. При клике на любой участок экрана добавляется сверху блок с формой у которого большой zindex и человек может вводить текст и после того как нажимает отправить этот текст пхп принимает и вставляет в html блок и этот блок добаляется через append в div на которую кликал пользователь и у него самый большой zindex получается эффект что человек кликает на участок экрана открывается форма вводит текст нажимает вставить и этот текст затем вставляется именно в этот участок куда нажимал. В общем это работает, но вот значения id куда будут кликать надо где то сохранить отправил в пхп через ajax и сохраняю в файле без перезагрузки все значения добавляется в файл, но теперь надо обратно так же без перезагрузки получать из файла эти значения. Код отредактирую сейчас.
|
В каких местах повествования нужно расставить точки и запятые?
Ничего из этого не понять, да и не рассказы нужны, а пример hrml-кода. А отправить асинхронно на сервер, так у вас есть код такой, так и отправляется. А вот var tlllll = JSON.parse( "<?php json_encode($eee) ?>");, тут ошибка и это лишнее. Должно быть либо echo, либо его краткая запись, и без добавления кавычек: var tlllll = <?=json_encode($eee)?>; так как json_encode($eee) запишет в вывод литеральное представление массива или объекта, в зависимости от того, какой массив на сервере кодируется. JSON.parse совсем не нужен. |
Цитата:
var tlllll = await fetch("get$eee.php").then(r => r.json()); Такой код можно обернуть в функцию, которая, например, вызывается при нажатии кнопки — будет свежее получение данных, а твой способ будет возвращать то, что «жестоко прибито к коду» и в принципе делает невозможным кеширование скрипта, поскольку его код всё время меняется. |
Цитата:
Кстати именно в JS его и близко нет. |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Цитата:
С точки зрения программиста этот код — настоящее говно, его следует выкинуть, а такому автору — заняться вместо программирования тем, в чём он лучше будет разбираться. Однако с точки зрения PHP разработчика — это самый обычный код. Менталитет, однако! Совсем другое дело, когда на PHP генерируются данные, например, в формате JSON, которые будут запрашиваться из программы на JS. А вот генерирование произвольного кода на JS из PHP обычно не нужно. |
Цитата:
Цитата:
Оптимизация загрузки также предполагает сокращение числа запросов к серверу. Разговоры об ошибках, предпочтениях, это просто словоблудие, если оно не подкреплено аргументами или речь идет о действительной выгоде. Не важно какой на сервере язык, он в общем-то по большому счету работает со строковыми данными, это уже задача клиента их трактовать так как ему предписано. Ничем не запрещено вставлять в тело страницы как css, так и javascript, и если это выгодно сделать именно так, то так и делают. Ладно бы, если бы ваш отдельный запрос обрабатывался не серверным языком, а чем-то специально предназначенным, тогда можно было бы говорить, что РНР отвязан от этой рутины, и вставка языком РНР js-данных в выводимый поток, это плохо. Ранее, когда веб технологии не так были развиты как сейчас, серверный язык вообще формировал целые css и js файлы, так как содержимое их зависело от динамически изменяемых данных. И небо от этого не падало. Если и в нынешнее время потребуется такое, ничего страшного не произойдет, если подключение скрипта будет таким <script src="name.php"></script>, причем расширение php можно и скрыть, указав js, забота обращения к сценарию на сервере при этом возлагается на .htaccess. Плохо будет, если вместо такого подхода объявить .js выполняемыми файлами. Нет на сервере js, и считать вставку js/css кода в тело страницы недопустимым явлением, это бредятина. Все определяется целесообразностью в каждом конкретном случае, а не тем как вам это нравится. |
Цитата:
О ней придется дополнительно думать, защищать ее, а выше этого не требовалось. Цитата:
Цитата:
Например в Yii js код клиентской валидации генерируется автоматически в зависимости от того что в php моделях. Т.к. источник истины на сервере. |
Malleys,
че ты к кешированию то пристал формы не стоит кешировать там защита от CSRF должна быть посмотри до чего доходили https://bolknote.ru/all/3185/ когда небыло http2 и выше тебе правильно написали, что возможны проекты в которых тот или иной (js,css) генерился сервером, затем добавили заголовок ты даже не заметишь разницу |
Цитата:
Генерирование исходного кода, заполненного некими данными, означает лишь, что вы не умеете отделять данные от бизнес-логики. Тя́раызэ́ви, ла́чыкызла́йт! Цитата:
Цитата:
Цитата:
Цитата:
Вопрос-то как раз в том, почему вместо использования подходящих инструментов, вы хотите городить костыли при помощи PHP. Poznakomlus писал про генерирование CSS при помощи PHP. Вы с таким подходом можете совершить кучу ошибок и кто о них вам сообщит? Например, когда мне нужно написать более сложный CSS, код которого может быть проще выражен, например, при помощи циклов, то почему вместо SCSS с его инструментами я должен использовать PHP с нулём возможностей работы с CSS? Цитата:
|
Часовой пояс GMT +3, время: 08:37. |