Обработка формы с чистого php на ajax + php

123
IL
На сайте с 20.04.2007
Offline
435
#11
Sitealert:
Именно, что кажется. Ни к чему без необходимости постоянно пересылать кучу хтмл-кода, который можно просто написать на странице.

А тут можно холиварить долго..

К примеру, получение таблицы с данными по нужным фильтрам.. - заменяешь блок с таблицей (или саму таблицу) целиком и получаешь более-менее универсальное решение, завязанное только на код формирования таблицы.

А если в ячейках таблицы данные разнородные, да ещё и по количеству они могут измениться, то обработку придётся и на клиенте, и на сервере прикручивать.. а overhead на <tr><td> не намного больше, чем на {""}

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
S
На сайте с 30.09.2016
Offline
469
#12
ivan-lev:
а overhead на <tr><td> не намного больше, чем на {""}

Ага, а там ещё классы, идентификаторы, стили, колспаны всякие... И в результате имеем килотонну говнокода.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
IL
На сайте с 20.04.2007
Offline
435
#13
Dram:
for(prop in JSON.parse(msg)) {
$('#my_message'+prop).html(msg.prop);

У Вас in JSON.parse(msg)

а потом - попытка обратиться к msg.prop (не к результату выполнения json.parse)..

А вообще, в ajax есть возможность задать 'json' - он сам попробует разобрать ответ

https://stackoverflow.com/questions/8951810/how-to-parse-json-data-with-jquery-javascript

D
На сайте с 28.06.2008
Offline
1108
#14

Попробовав сначала менять целиком таблицу увяз в синтаксисе пхп.

Чтобы присвоить переменной кучу хтмл кода в котором так же есть пхп... короче увяз и бросил.

Решение с массивом более красивое и быстрое оказалось.

Только теперь все же не могу врубиться как вывести данные...

Сейчас у меня так

            function(msg) { 

for(prop in JSON.parse(msg)) {
console.log(prop);
$('#my_message'+prop).html(msg.prop);
}
}

НИже формы есть див

<div id="my_messageName"></div>

console.log(prop); сообщает что есть элемент в названием Name - но туда ничего не выводится

IL
На сайте с 20.04.2007
Offline
435
#15
Dram:
for(prop in JSON.parse(msg)) {

Как-то так должно работать:

            function(msg) { // получен ответ сервера
result = JSON.parse(msg);
for(prop in result) {
$('#my_message'+prop).html(result.prop);
}
// $('#my_message').html(msg);
}
D
На сайте с 28.06.2008
Offline
1108
#16

ivan-lev, у меня запрос реализован так

$.post(
'test.php', // адрес обработчика
$("#my_form").serialize(), // отправляемы е данные

И я к сожалению не знаю как сюда присобачить dataType: 'json',

IL
На сайте с 20.04.2007
Offline
435
#17
Dram:
console.log(prop); сообщает что есть элемент в названием Name - но туда ничего не выводится

Что в JSON.parse(msg) (а не в msg) есть этот элемент..

---------- Добавлено 18.04.2020 в 12:04 ----------

Dram:
И я к сожалению не знаю как сюда присобачить dataType: 'json',

https://api.jquery.com/jquery.post/

jQuery.post( url [, data ] [, success ] [, dataType ] )

Я вообще заметил, что в темах от Dram лучше не отвечать.. Он сам прекрасно найдёт все ответы на свои вопросы.. А так - приходится переписываться.. и рассказывать, что и почему не получается.. 😂

S
На сайте с 30.09.2016
Offline
469
#18

Через JSON.parse(msg) никто не делает. Аякс сам умеет разбирать объект.

D
На сайте с 28.06.2008
Offline
1108
#19

Так не работает (

                    function(msg) { // получен ответ сервера
result = JSON.parse(msg);
console.log(result);
for(prop in result) {
console.log('#my_message'+prop);
$('#my_message'+prop).html(result.prop);
}
}
}

Консоль выводит и массив и названия ID то тестовый див, куда пытаюсь вывести по прежнему пустой

IL
На сайте с 20.04.2007
Offline
435
#20
Sitealert:
И в результате имеем килотонну говнокода.

Это может быть компактнее и быстрее (как в реализации, так и для пользователя), нежели попытка сгенерировать табличку на клиенте.. особенно с colspan-ами и rowspan-ами..

И да, зависит от ситуации.. и "килотонна" (лишний килобайт при обмене данными без перезагрузки страницы в пользу универсальности и скорости реализации решения) может быть вполне оправдана.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий