AFI Опубликовано 9 августа, 2016 Жалоба Поделиться Опубликовано 9 августа, 2016 Добрый день!Хочу сделать возможность скачивать "прайс лист" в формате PDF.Есть страница со списком товаров, по нажатию на кнопку JS берет данные с html и через AJAX отправляет их в нужный файл где уже mpdf делает оставшуюся работу.Но, при нажатии на кнопку происходит ошибка Ошибка 500 (Internal Server Error). Как пофиксить ошибку? Может я в скрипте ошибся $('.btn-pdf').on('click', function() { //var amount = $('#quantity').val(); var data = $('.active').html(); $.ajax({ method: "POST", url: "ajax/mpdf.php", data: data, dataType: 'json' }); }); Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 9 августа, 2016 Жалоба Поделиться Опубликовано 9 августа, 2016 Параметр data у Вас какой-то странный. В Simpla полно примеров работы с AJAX, смотрите. И конечно, в Сети тоже можно много найти... Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 9 августа, 2016 Жалоба Поделиться Опубликовано 9 августа, 2016 Добрый день!Но, при нажатии на кнопку происходит ошибка Ошибка 500 (Internal Server Error).Как пофиксить ошибку? Может я в скрипте ошибся <!-- Скрипт {literal} --> Ваш код <!-- Скрипт {/literal} --> нет? Цитата Ссылка на сообщение Поделиться на другие сайты
AFI Опубликовано 9 августа, 2016 Автор Жалоба Поделиться Опубликовано 9 августа, 2016 <!-- Скрипт {literal} --> Ваш код <!-- Скрипт {/literal} --> нет?подключается через отдельный файл. Параметр data у Вас какой-то странный. В Simpla полно примеров работы с AJAX, смотрите. И конечно, в Сети тоже можно много найти...Делаю по примеру корзины. Полный текст ошибки в консоли.POST http://test/ajax/mpdf.php 500 (Internal Server Error) Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 9 августа, 2016 Жалоба Поделиться Опубликовано 9 августа, 2016 $('.btn-pdf').on('click', function() { $.ajax({ method: "POST", url: "ajax/mpdf.php", data: {html: $('.active').html()}, ............................. В mpdf.php получайте переменную post html Цитата Ссылка на сообщение Поделиться на другие сайты
AFI Опубликовано 9 августа, 2016 Автор Жалоба Поделиться Опубликовано 9 августа, 2016 $('.btn-pdf').on('click', function() { $.ajax({ method: "POST", url: "ajax/mpdf.php", data: {html: $('.active').html()}, ............................. В mpdf.php получайте переменную post htmlНе работает,код пхп файла $html = json_decode($_POST['html'],true); require_once(dirname(__DIR__).'/'."mpdf/mpdf.php"); $mpdf = new mPDF('utf-8', 'A4', '8', '', 10, 10, 7, 7, 10, 10); /*задаем формат, отступы и.т.д.*/ $mpdf->charset_in = 'UTF-8'; /*не забываем про русский*/ //$stylesheet = file_get_contents('style.css'); /*подключаем css*/ //$mpdf->WriteHTML($stylesheet, 1); $mpdf->list_indent_first_level = 0; $mpdf->WriteHTML($html, 2); /*формируем pdf*/ $mpdf->Output('mpdf.pdf', 'I'); Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 10 августа, 2016 Жалоба Поделиться Опубликовано 10 августа, 2016 Видятся сразу такие ошибки:1. method: "POST" - не работает такое в методе ajax. Это Вы от yr4ik-а ошибочку подцепили. Надо использовать type: "POST"2. json_decode - это совсем не нужно использовать. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 10 августа, 2016 Жалоба Поделиться Опубликовано 10 августа, 2016 (изменено) 1. method: "POST" - не работает такое в методе ajax.Это Вы от yr4ik-а ошибочку подцепили. Надо использовать type: "POST"И где же ты тут мою "ошибочку" увидел?!!! 1е - Это не ошибка, а новое имя параметра. Читай доки http://api.jquery.com/jquery.ajax/ type (default: 'GET')Type: StringAn alias for method. You should use type if you're using versions of jQuery prior to 1.9.0. 2е - по дефолту в симпле версия 1.7.2. С этой точки зрения type - да правильно.Но ТС использовал параметр method (поэтому я его и оставил). AFI1 строка должна быть:$html = $_POST['html']; И в дальнейшем если "не работает" - то пишите что именно.Какая ошибка или что происходит.Мы не экстрасенсы... А вообще, для начала, не плохо было бы описать суть затеиТо я что то совсем не соображу что это!Отправляется аякс запрос на сервер где переданная в post засовывается в pdf и (насколько я знаю библиотеку mpdf) - полученный pdf (Output с флагом I) - отдается назад аяксу.У которого (судя по вашим постам) даже нет функции для обработки. И в чем тут логика и что должно работать? Изменено 10 августа, 2016 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 11 августа, 2016 Жалоба Поделиться Опубликовано 11 августа, 2016 И в чем тут логика и что должно работать? Конечно, описанные Вами недостатки имеют место, но ТС пока в первом посте ставил вопрос более простой: пофиксить ошибку 404. А для ошибки в ajax/mpdf.php возможностей много, например:1. Первая же строка даст для $html пустое значение.2. Во второй строке, очень возможно, неверный путь, и не срабатывает подключение. 3. По ходу могут возникнуть PHP-сообщения об ошибках... А чтоб узнать точно, надо, как Вы правильно заметили, иметь полную информацию...Увы, часто спрашивают весьма легкомысленно - ляпнул что-то кое-как, не озаботившись сообщить детали.Например, если бы в этой теме ТС сразу дал URL, можно было бы многое определить точнее... Цитата Ссылка на сообщение Поделиться на другие сайты
AFI Опубликовано 11 августа, 2016 Автор Жалоба Поделиться Опубликовано 11 августа, 2016 (изменено) И где же ты тут мою "ошибочку" увидел?!!! 1е - Это не ошибка, а новое имя параметра. Читай доки http://api.jquery.com/jquery.ajax/ 2е - по дефолту в симпле версия 1.7.2. С этой точки зрения type - да правильно.Но ТС использовал параметр method (поэтому я его и оставил). AFI1 строка должна быть: $html = $_POST['html']; И в дальнейшем если "не работает" - то пишите что именно.Какая ошибка или что происходит.Мы не экстрасенсы... А вообще, для начала, не плохо было бы описать суть затеиТо я что то совсем не соображу что это!Отправляется аякс запрос на сервер где переданная в post засовывается в pdf и (насколько я знаю библиотеку mpdf) - полученный pdf (Output с флагом I) - отдается назад аяксу.У которого (судя по вашим постам) даже нет функции для обработки. И в чем тут логика и что должно работать?Конечно, описанные Вами недостатки имеют место, но ТС пока в первом посте ставил вопрос более простой: пофиксить ошибку 404. А для ошибки в ajax/mpdf.php возможностей много, например:1. Первая же строка даст для $html пустое значение.2. Во второй строке, очень возможно, неверный путь, и не срабатывает подключение.3. По ходу могут возникнуть PHP-сообщения об ошибках... А чтоб узнать точно, надо, как Вы правильно заметили, иметь полную информацию...Увы, часто спрашивают весьма легкомысленно - ляпнул что-то кое-как, не озаботившись сообщить детали.Например, если бы в этой теме ТС сразу дал URL, можно было бы многое определить точнее... Суть описал, но не подробно. Мой косяк. Задумка была в том, что человек кликает на кнопку, js забирает часть html и отправляет его в php где создается пдф и автоматом скачивается(в Output параметр D изменил).А по поводу ошибок, все что я имел на тот момент я написал. Когда получил доступ к логамошибки стали явны, не работал autoloader, ругался на __DIR__ или когда подключал на прямую пропустил /. А вот по поводу функции обработки можно поподробней? Как js обработает файл которЫй вернет output? Изменено 11 августа, 2016 пользователем AFI Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 11 августа, 2016 Жалоба Поделиться Опубликовано 11 августа, 2016 А вот по поводу функции обработки можно поподробней? Как js обработает файл которЫй вернет output?Обработает в точности так, как напишет программист. Смотрите образцы в стандартной Simpla, например, в ajax/ajax_cart.jsЗадумка была в том, что человек кликает на кнопку, js забирает часть html и отправляет его в php где создается пдф и автоматом скачивается(в Output параметр D изменил).Для такой постановки AJAX и не нужен, с ним только сложнее. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 11 августа, 2016 Жалоба Поделиться Опубликовано 11 августа, 2016 (изменено) Конечно, описанные Вами недостатки имеют место, но ТС пока в первом посте ставил вопрос более простой: пофиксить ошибку 404.Не 404, а 500. И полагаю она должна была решиться решением в посте #5.Поскольку там получался запрос вида http://site/?<html><body>и тд</body></html> Задумка была в том, что человек кликает на кнопку, js забирает часть html и отправляет его в php где создается пдф и автоматом скачивается(в Output параметр D изменил).Что за html?Одинаковый везде или разный для всех страниц?Он отображается на сайте или скрыт? Изменено 11 августа, 2016 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 11 августа, 2016 Жалоба Поделиться Опубликовано 11 августа, 2016 Что за html? Видимо, тот, который определяется в определенном месте:$('.active').html(); Одинаковый везде или разный для всех страниц?Он отображается на сайте или скрыт? Для программирования нужной функциональности это вроде бы не имеет значения... Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 11 августа, 2016 Жалоба Поделиться Опубликовано 11 августа, 2016 Видимо, тот, который определяется в определенном месте:$('.active').html();Ух ты какой умный... Для программирования нужной функциональности это вроде бы не имеет значения...Может для тебя и не имеет значения.А мне что бы написать человеку решение нужно знать что за htmlЭто может быть какой то статический (различная банк информация и тд), а может быть какой нибудь товар.Исходя из этих данных я определю как лучше формировать этот pdf и отдавать его пользователю. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 12 августа, 2016 Жалоба Поделиться Опубликовано 12 августа, 2016 (изменено) Может для тебя и не имеет значения. А мне что бы написать человеку решение нужно знать что за html Это может быть какой то статический (различная банк информация и тд), а может быть какой нибудь товар. Исходя из этих данных я определю как лучше формировать этот pdf и отдавать его пользователю.Очень интересно. И какая будет разница в программировании, если, например, контент "Одинаковый везде" или "разный для всех страниц"? А если сегодня "Одинаковый везде", а через пару дней изменится и станет "разный для всех страниц" - менять реализацию придется? А еще может быть и более сложный вариант - когда ни "Одинаковый везде", ни "разный для всех страниц"... Изменено 12 августа, 2016 пользователем Kors Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 12 августа, 2016 Жалоба Поделиться Опубликовано 12 августа, 2016 Очень интересно.И какая будет разница в программировании, если, например, контент "Одинаковый везде" или "разный для всех страниц"?А если сегодня "Одинаковый везде", а через пару дней изменится и станет "разный для всех страниц" - менять реализацию придется?А еще может быть и более сложный вариант - когда ни "Одинаковый везде", ни "разный для всех страниц"...Корс - это мне тебе объяснять нужно или ТС??Я задал вопросы ТС. Ты тут причем? Допустим контент одинаковый - то можно сделать разовый генератор прямо в ajax/mpdf.php и писать pdf-файл по изменению. Если контент не менялся то просто делать редирект на файл.Если контент динамический - то запись в файл - не пройдет. Нужно делать с флагом "I"И тогда с аяксом будет проблемно. Проще будет попуп в новой вкладке Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 12 августа, 2016 Жалоба Поделиться Опубликовано 12 августа, 2016 Я задал вопросы ТС. Ты тут причем? Меня заинтересовал Ваш специфический подход, и я задал Вам свои собственные отдельные вопросы. На часть моих вопросов Вы ответили - при разных случаях контента Вы собираетесь программировать по-разному. Но некоторые более интересные моменты Вы проигнорировали. Повторю: А если сегодня "Одинаковый везде", а через пару дней изменится и станет "разный для всех страниц" - менять реализацию придется? В такой ситуации пользователю к Вам опять обращаться, чтоб Вы скрипт изменили? А если еще через пару дней пользователь назад захочет ситуацию вернуть - опять на поклон к программисту? Насколько я знаю, программирование заключается в том, чтобы программа (скрипт), написанная один раз, работала во многих разных ситуациях, при любых (допустимых) исходных данных. И задавать вопросы типа - а Вы собираетесь использовать скрипт с одинаковым значением параметра или с разными - выглядит довольно глуповато, особенно от программиста. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 12 августа, 2016 Жалоба Поделиться Опубликовано 12 августа, 2016 (изменено) Я собственно потому и задал вопросы в посте 12!Что бы сделать более подходящий вариант Корс иди на...! Задрал уже своимы тупыми постами! Изменено 12 августа, 2016 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 13 августа, 2016 Жалоба Поделиться Опубликовано 13 августа, 2016 Я собственно потому и задал вопросы в посте 12!Что бы сделать более подходящий вариантПодходящий КОМУ?Обычно СРАЗУ стараются программировать так, чтобы работало ВСЕГДА. А Вы хотите предложить свой специфичный ограниченный вариант?И чтобы при каждом пустяковом изменении на сайте пользователь обращался к yr4ik, чтобы тот заново перепрограммировал - так будет подходяще? Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 13 августа, 2016 Жалоба Поделиться Опубликовано 13 августа, 2016 Обычно СРАЗУ стараются программировать так, чтобы работало ВСЕГДА. А Вы хотите предложить свой специфичный ограниченный вариант? И откуда же ты знаешь какой вариант я хочу предложить?Я лишь задал наводящие вопросы ТС по смыслу его затеи.А ты уже где то ограниченное решение увидел... Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 13 августа, 2016 Жалоба Поделиться Опубликовано 13 августа, 2016 И откуда же ты знаешь какой вариант я хочу предложить? Не знаю. Для того и спрашиваю, чтоб узнать, но ответов точных от Вас не поступает. Повторю вопрос: А если сегодня "Одинаковый везде", а через пару дней изменится и станет "разный для всех страниц" - менять реализацию придется? В такой ситуации пользователю к Вам опять обращаться, чтоб Вы скрипт изменили? А если еще через пару дней пользователь назад захочет ситуацию вернуть - опять на поклон к программисту? Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 14 августа, 2016 Жалоба Поделиться Опубликовано 14 августа, 2016 Че й то вы далеко от АЯКСА ушли Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 14 августа, 2016 Жалоба Поделиться Опубликовано 14 августа, 2016 Че й то вы далеко от АЯКСА ушли Может, и далеко. Но зато какой интересный подход обнаружили. Страшно интересно - программист сделает так, что время от времени непременно переделывать придется... А если Вас интересует что по АЯКСу - спрашивайте точно и конкретно... А ТС, судя по всему, ошибку свою нашел, поправил и про тему забыл... Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 14 августа, 2016 Жалоба Поделиться Опубликовано 14 августа, 2016 (изменено) Ты где блядь увидел что и как я сделаю?!Я еще сам не решил как делать, а ты уже увидел??!Монитор протри лучше! Изменено 14 августа, 2016 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 14 августа, 2016 Жалоба Поделиться Опубликовано 14 августа, 2016 Я еще сам не решил как делать, а ты уже увидел??!Монитор протри лучше! Спасибо за ценный совет. Согласно Вашим указаниям протер монитор. Увидел, что Вы не дали вообще никакого ответа на мои простенькие вопросы: Не знаю. Для того и спрашиваю, чтоб узнать, но ответов точных от Вас не поступает. Повторю вопрос: А если сегодня "Одинаковый везде", а через пару дней изменится и станет "разный для всех страниц" - менять реализацию придется? В такой ситуации пользователю к Вам опять обращаться, чтоб Вы скрипт изменили? А если еще через пару дней пользователь назад захочет ситуацию вернуть - опять на поклон к программисту? В соответствии с принципом "молчание - знак согласия" решил, что мои догадки верны. Видимо, тут я поторопился и поступил несколько самонадеянно. Если мои догадки не верны, сообщайте точно, что и как Вы будете решать при каждом варианте... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.