Показать сообщение отдельно
  #5 (permalink)  
Старый 10.08.2017, 18:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Tomson123
Подскажи как правильно сделать чтобы можно было передать с записью GETы!
Так и предается - через URL запроса, а POST данные передаются в теле запроса. Но, так как вы делаете, выводя скрипт посредством РНР ради того, чтобы указать переменную, это не самый лучший способ, для формы тем более. Данный обработчик вполне можно прописать в подключаемом скрипте, в обработчике загрузки страницы:

$(function() {
//.....
})


Думаю, что такое в вашем коде уже есть. URL запроса же, который будет содержать и переменную $id прописать в action формы, ибо форму в любом случае будет отдавать сервер:

<form id="formx" action="index.php?act=add&id=<?=$id?>">


В Ajax запросе получить этот адрес у формы:

$('#formx').submit(function(e) {
    e.preventDefault(); //отмена действия по умолчанию
    $.ajax({
          type: 'POST',
          url: this.action, //URL запроса
          dataType:'text',
          data: $(this).serialize(), //данные формы
          //... код далее
    })
});


Сообщение от Tomson123
мне нужно чтобы вместо этова ответа при успешном добавлении записи эта запись автоматически отображалась на странице
Ну в общем то, для этого и не нужно ничего возвращать серверу, достаточно клиенту ответить, что добавление записи Ок, и что было в форме пометить на страницу, и очистить форму.

Если же все таки требуется "вмешательство" в данный процесс сервера, например он снабжает эти данные еще какими либо сопутствующими добавленной записи (вложенные запросы к связанным таблицам), то тогда после записи данных формы нужно получить ID этой записи. Сделать запрос по этому ID, получить и отправить клиенту.

Но если переменная $id, это и есть добавленная запись (то есть вы так полагаете), то это конечно же не так.

И вот это htmlentities() слишком, достаточно htmlspecialchars().

Последний раз редактировалось laimas, 10.08.2017 в 18:51.
Ответить с цитированием