сериализовать массив для отправки в php по гиперссылке - PullRequest
1 голос
/ 18 ноября 2010

У меня есть это:

var postData = {};
                    $('#items tr').not(':first').each(function(index, value) {
                        var keyPrefix = 'data[' + index + ']';
                        postData[keyPrefix + '[index]'] = index;
                        postData[keyPrefix + '[supp_short_code]'] = $(this).closest('tr').find('.supp_short_code').text();
                        postData[keyPrefix + '[project_ref]'] = $(this).closest('tr').find('.project_ref').text();
                        postData[keyPrefix + '[om_part_no]'] = $(this).closest('tr').find('.om_part_no').text();
                        postData[keyPrefix + '[description]'] = $(this).closest('tr').find('.description').text();
                        postData[keyPrefix + '[quantity_input]'] = $(this).closest('tr').find('.quantity_input').val();
                        postData[keyPrefix + '[cost_of_items]'] = $(this).closest('tr').find('.cost_of_items').text();
                        postData[keyPrefix + '[cost_total_td]'] = $(this).closest('tr').find('.cost_total_td').text();
                    });

Каким будет мой следующий шаг, чтобы отправить это в PHP, я не хочу использовать Ajax, потому что мне нужно перейти на страницу PHP и просмотреть полученные результаты.Идея состоит в том, чтобы взять значения из таблицы, когда пользователь нажимает «Предварительный просмотр», он возьмет эти значения и перенесет их на страницу PHP, на которой у меня будет настроена страница стиля Invoice, которую я заполню вышеуказанными значениями?

Спасибо

Ответы [ 2 ]

1 голос
/ 18 ноября 2010

Я не хочу использовать Ajax, потому что мне нужно перейти на страницу PHP и просмотреть полученные результаты

Логика здесь не слишком ясна - в настоящее время кажется, что вы используете JS для запроса вашей БД на основе некоторых критериев, присваиваете результаты массивам, а затем помещаете результаты на страницу PHP для их вывода?

Вместо того, чтобы отправлять набор результатов через GET / POST на страницу, почему бы вам не отправлять ТОЛЬКО переменные, которые вы используете для построения ваших начальных критериев, затем на странице предварительного просмотра PHP используйте PHP для запроса к БД, получения результатов и отображения их.

Вы всегда должны стараться воздерживаться от отправки полного набора результатов через GET / POST на другую страницу, вам следует стремиться только отправлять операторов, которые помогут вам либо получить, либо создать набор результатов.

1 голос
/ 18 ноября 2010

Об отправке значений по почте: Создайте строку с разделителем, который разделяет значения, и вставьте строку в скрытое поле. Измените тег формы, чтобы использовать method="post". Когда вы отправите форму, у вас будет переменная php что-то вроде: $_POST['hiddenFieldName'] со строкой, которую вы создали. Теперь вам нужно отделить строку, как вы ее построили, чтобы получить значения.

Важное примечание о безопасности: Похоже, что это какая-то корзина для покупок - я предполагаю это по ключам, которые намекают на цену. Если это так, и пользователи могут заказывать с этого сайта, вы подвержены серьезным проблемам с безопасностью через Подделка параметров . Чтобы избежать этого, просто отправьте массив (или строку, как я объяснил) с идентификаторами и количеством выбранных элементов. На странице, где вы просматриваете товары, снова получите там цены из БД и пересчитайте итоги. Все расчеты должны выполняться на стороне сервера.

...