Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / jQuery и PHP / 17 сообщений из 17, страница 1 из 1
09.10.2015, 15:41
    #39073059
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
Вызываю из js файла с помощью $.post файл php.
Передаю ему 3 параметра

Файл PHP отрабатывает запрос и создает файл на диске
В конце передает js файлу с помощью json имя файла
PHP отрабатывает, но js не хочет работать дальше

Меняю синтаксис PHP и проблема ПОЧТИ устранена
Почти - потому как при других параметрах запроса js не работает
Но в любом случае php файл на диске создает

Я так понимаю js абсолютно пофиг на синтаксис php ?
Или я ошибаюсь ?

ЧДНТ ?
...
Рейтинг: 0 / 0
09.10.2015, 15:44
    #39073063
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
PerederiyЯ так понимаю js абсолютно пофиг на синтаксис php ?
ага


PerederiyВ конце передает js файлу с помощью json имя файла
PHP отрабатывает, но js не хочет работать дальше
в callback функции ответ нужно обрабатывать
...
Рейтинг: 0 / 0
09.10.2015, 15:47
    #39073068
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
ИзопропилPerederiyЯ так понимаю js абсолютно пофиг на синтаксис php ?
ага


PerederiyВ конце передает js файлу с помощью json имя файла
PHP отрабатывает, но js не хочет работать дальше
в callback функции ответ нужно обрабатывать

дык обрабатывается
...
Рейтинг: 0 / 0
09.10.2015, 15:56
    #39073078
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
Perederiyдык обрабатывается
а кто ж тогда не хочет работать дальше?
код после $.post ? - так он уже отработал до завешения запроса
...
Рейтинг: 0 / 0
09.10.2015, 16:03
    #39073090
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
ИзопропилPerederiyдык обрабатывается
а кто ж тогда не хочет работать дальше?
код после $.post ? - так он уже отработал до завешения запроса

php через json передает в js признак успеха/ неудачи и имя файла
пошагово я php проверял - он это формирует

js дальше должен вызывать другой js (тот формирует окно с предложением скачать переданный из php файл)
так вот этого не происходит
...
Рейтинг: 0 / 0
09.10.2015, 16:06
    #39073093
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
причем делает это странно

если в php одни параметры запроса - все ok
если другие параметры - глюк

но при этом php в любом случае файл на винте формирует
...
Рейтинг: 0 / 0
09.10.2015, 16:11
    #39073102
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
Perederiy,
без конкретного кода врядли помогут тебе
...
Рейтинг: 0 / 0
09.10.2015, 16:20
    #39073110
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
js

js


$('#date-continue').click(function(event){

event.preventDefault();

var $this = $(this);
if($this.hasClass('loading')) return false;
$this.addClass('loading');


//submit all data you choose and wait for the response!
$.post(
"inc/report.php",
{
account: $('#account-list').val(),
start: $('#start').val(),
end: $('#end').val()
},
function(data) {
$this.removeClass('loading');

if(data.result=="success") {
moveNextSection();
$('a#download-report').attr('href', data.url);

} else if(data.result == "failed") {
alert(data.message);
} else {
//why are you here?
alert('unknown');
}
},
"json"
);

});


выделенное непонятно работает и получается зависит от параметров запроса в php



report.php


<?php require_once ('conf.php'); ?>

<?php
$query_template = <<<'EOT'
SELECT
activities.signup_id,
to_char(activities.created_at, 'HH24:MI:SS') AS hour,
to_char(activities.created_at, 'DD Mon YYYY') AS date,
signups.first_name,
signups.last_name,
signups.email1,
addresses.zip,
CASE
WHEN activity_types.name='Contacted' OR activity_types.name='Email Sent' THEN 'outgoing'
WHEN activity_types.name='Feedback' OR activity_types.name='Email Received' THEN 'inbound'
ELSE ''
END,
author.full_name,
activity_types.name AS activity_type_name,
activity_datas.content
FROM
%1$s.activities
INNER JOIN %1$s.activity_datas ON (activities.id = activity_datas.activity_id)
INNER JOIN %1$s.signups ON (activities.signup_id = signups.id)
LEFT JOIN %1$s.signups author ON (activities.author_id = author.id)
LEFT JOIN %1$s.addresses ON (signups.primary_address_id = addresses.id)
LEFT JOIN %1$s.activity_types ON (activities.activity_type_id = activity_types.id)
WHERE
activity_types.name IN ('Contacted', 'Feedback', 'Email Sent', 'Email Received')
%2$s
ORDER BY signup_id ASC, activities.created_at DESC
EOT;

$criteria = '';
if (isset($_POST['start']) && !empty($_POST['start'])) {
$criteria .= " AND activities.created_at >= DATE'{$_POST['start']}'";
}
if (isset($_POST['end']) && !empty($_POST['end'])) {
$criteria .= " AND activities.created_at <= DATE'{$_POST['end']}'";
}
$query = sprintf($query_template, $_POST['account'], $criteria);

$result = array(
'result' => 'failed',
'message' => ''
);
if(DEBUG) {
$result['main_query'] = $query;
}

$report = pg_query($dbh, $query);
$row = pg_fetch_row($report);

if (!$row) {
$result['result'] = 'failed';
$result['message'] = 'Empty resultset returned.';
} else {

date_default_timezone_set('UTC');
$filename = $_POST['account'] . '-' . time() . '-' . date('Ymd') . ".csv";
$myfile = fopen("../reports/" . $filename, "w");

if(!$myfile) {
$result['result'] = 'failed';
$result['message'] = 'Unable to create report file.';
} else {
$csv_header = array('ID', 'Hour', 'Date', 'First Name', 'Last Name', 'Email Address', 'Zip', 'Incoming/Outgoing', 'Author', 'Contact Type', 'Contact Method', 'Message/Logged Contact');

fputcsv($myfile, $csv_header);

if(DEBUG) {
$result['data'] = array();
}

do {
$activity_type_name = $row[9];
$data = yaml_parse($row[10]);



unset($row[9]);
unset($row[10]);

switch ($activity_type_name) {
case 'Contacted':
$row[] = $data['type_name']; // Contact Type
$row[] = $data['contact_method_name']; // Contact Method
$row[] = $data['note']; // Message

if ($data['type_name'] == 'Article 10 comment') {
$row[7] = 'inbound';
}
if ($data['type_name'] == 'Article 10 response') {
$row[7] = 'outgoing';
}
break;
case 'Feedback':
$row[] = ''; // Contact Type
$row[] = 'Feedback Form'; // Contact Method
$row[] = $data['feedback']['content']; // Message
break;
case 'Email Sent':
$row[] = $data['signup_call']['type_name']; // Contact Type
$row[] = $data['signup_call']['contact_method_name']; // Contact Method
$row[] = get_email_body($data['email']['id']); // Message
break;
case 'Email Received':
$row[] = 'Article 10 comment'; //'Reply'; // Contact Type
$row[] = 'Email'; // Contact Method
$row[] = get_email_body($data['email']['id']);
$row[7] = 'inbound';
break;
}

$row[13] = strip_tags($row[13]);
fputcsv($myfile, $row);
} while ($row = pg_fetch_row($report));
fclose($myfile);

$result['result'] = 'success';
$result['url'] = '/reports/' . $filename;
}
}

echo json_encode($result);


function get_email_body($id) {
global $dbh;
$email_data = pg_fetch_row(pg_query($dbh, "SELECT body_text FROM {$_POST['account']}.emails WHERE id = {$id}"), 0);
return $email_data[0];
}



пока не поставил

date_default_timezone_set('UTC');

перед

$filename = $_POST['account'] . '-' . time() . '-' . date('Ymd') . ".csv";

js не работал

js почему-то не нравился date('Ymd')
...
Рейтинг: 0 / 0
09.10.2015, 16:25
    #39073117
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
Perederiy , просто потестируй свой код. Посмотри, что ты в итоге получаешь на клиенте.
...
Рейтинг: 0 / 0
09.10.2015, 18:40
    #39073244
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
Perederiy,

Какую ошибку получаете? Код и PHP и js увидеть можно?
...
Рейтинг: 0 / 0
09.10.2015, 18:45
    #39073253
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
PerederiyВ конце передает js файлу с помощью json имя файла
PHP отрабатывает, но js не хочет работать дальшеЧто значит "не хочет"? Яваскрипт получает ответ от сервера или нет? Запускается ли вообще колбек функция. Если не получает - смотрите, отправляется ли ответ с сервера. Если получает - смотрите, то ли самое получено, что было отправлено.

Если есть сомнения и всё туманно, то тестирование яваскрипта можно провести не на пхпшном скрипте, а на простом текстовом файле (заглушке) с контентом, представляющим собой ожидаемый клиентом ответ от сервера ответом.
...
Рейтинг: 0 / 0
09.10.2015, 19:02
    #39073267
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
AreostarPerederiy,

Какую ошибку получаете? Код и PHP и js увидеть можно?

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
$('#date-continue').click(function(event){

event.preventDefault();

var $this = $(this);
if($this.hasClass('loading')) return false;
$this.addClass('loading');


//submit all data you choose and wait for the response!
$.post(
"inc/report.php",
{
account: $('#account-list').val(),
start: $('#start').val(),
end: $('#end').val()
},
function(data) {
$this.removeClass('loading');

if(data.result=="success") {
moveNextSection();
$('a#download-report').attr('href', data.url);
} else if(data.result == "failed") {
alert(data.message);
} else {
//why are you here?
alert('unknown');
}
},
"json"
);

});




Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
<?php require_once ('conf.php'); ?>

<?php
$query_template = <<<'EOT'
SELECT
activities.signup_id,
to_char(activities.created_at, 'HH24:MI:SS') AS hour,
to_char(activities.created_at, 'DD Mon YYYY') AS date,
signups.first_name,
signups.last_name,
signups.email1,
addresses.zip,
CASE
WHEN activity_types.name='Contacted' OR activity_types.name='Email Sent' THEN 'outgoing'
WHEN activity_types.name='Feedback' OR activity_types.name='Email Received' THEN 'inbound'
ELSE ''
END,
author.full_name,
activity_types.name AS activity_type_name,
activity_datas.content
FROM
%1$s.activities
INNER JOIN %1$s.activity_datas ON (activities.id = activity_datas.activity_id)
INNER JOIN %1$s.signups ON (activities.signup_id = signups.id)
LEFT JOIN %1$s.signups author ON (activities.author_id = author.id)
LEFT JOIN %1$s.addresses ON (signups.primary_address_id = addresses.id)
LEFT JOIN %1$s.activity_types ON (activities.activity_type_id = activity_types.id)
WHERE
activity_types.name IN ('Contacted', 'Feedback', 'Email Sent', 'Email Received')
%2$s
ORDER BY signup_id ASC, activities.created_at DESC
EOT;

$criteria = '';
if (isset($_POST['start']) && !empty($_POST['start'])) {
$criteria .= " AND activities.created_at >= DATE'{$_POST['start']}'";
}
if (isset($_POST['end']) && !empty($_POST['end'])) {
$criteria .= " AND activities.created_at <= DATE'{$_POST['end']}'";
}
$query = sprintf($query_template, $_POST['account'], $criteria);

$result = array(
'result' => 'failed',
'message' => ''
);
if(DEBUG) {
$result['main_query'] = $query;
}

$report = pg_query($dbh, $query);
$row = pg_fetch_row($report);

if (!$row) {
$result['result'] = 'failed';
$result['message'] = 'Empty resultset returned.';
} else {

date_default_timezone_set('UTC');
$filename = $_POST['account'] . '-' . time() . '-' . date('Ymd') . ".csv";
$myfile = fopen("../reports/" . $filename, "w");

if(!$myfile) {
$result['result'] = 'failed';
$result['message'] = 'Unable to create report file.';
} else {
$csv_header = array('ID', 'Hour', 'Date', 'First Name', 'Last Name', 'Email Address', 'Zip', 'Incoming/Outgoing', 'Author', 'Contact Type', 'Contact Method', 'Message/Logged Contact');

fputcsv($myfile, $csv_header);

if(DEBUG) {
$result['data'] = array();
}

do {
$activity_type_name = $row[9];
$data = yaml_parse($row[10]);



unset($row[9]);
unset($row[10]);

switch ($activity_type_name) {
case 'Contacted':
$row[] = $data['type_name']; // Contact Type
$row[] = $data['contact_method_name']; // Contact Method
$row[] = $data['note']; // Message

if ($data['type_name'] == 'Article 10 comment') {
$row[7] = 'inbound';
}
if ($data['type_name'] == 'Article 10 response') {
$row[7] = 'outgoing';
}
break;
case 'Feedback':
$row[] = ''; // Contact Type
$row[] = 'Feedback Form'; // Contact Method
$row[] = $data['feedback']['content']; // Message
break;
case 'Email Sent':
$row[] = $data['signup_call']['type_name']; // Contact Type
$row[] = $data['signup_call']['contact_method_name']; // Contact Method
$row[] = get_email_body($data['email']['id']); // Message
break;
case 'Email Received':
$row[] = 'Article 10 comment'; //'Reply'; // Contact Type
$row[] = 'Email'; // Contact Method
$row[] = get_email_body($data['email']['id']);
$row[7] = 'inbound';
break;
}

$row[13] = strip_tags($row[13]);
fputcsv($myfile, $row);
} while ($row = pg_fetch_row($report));
fclose($myfile);

$result['result'] = 'success';
$result['url'] = '/reports/' . $filename;
}
}

echo json_encode($result);


function get_email_body($id) {
global $dbh;
$email_data = pg_fetch_row(pg_query($dbh, "SELECT body_text FROM {$_POST['account']}.emails WHERE id = {$id}"), 0);
return $email_data[0];
}




php через json передает в js признак успеха/ неудачи и имя файла
пошагово я php проверял - он это формирует

js дальше должен вызывать другой js (тот формирует окно с предложением скачать переданный из php файл)
так вот этого не происходит

причем делает это странно

если в php одни параметры запроса - все ok
если другие параметры - глюк

но при этом php в любом случае файл на винте формирует


PS


пока не поставил

date_default_timezone_set('UTC');

перед

$filename = $_POST['account'] . '-' . time() . '-' . date('Ymd') . ".csv";

js вообще не работал

js почему-то не нравился date('Ymd')
...
Рейтинг: 0 / 0
09.10.2015, 20:38
    #39073307
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
Perederiy,
Что за функция moveNextSection()
...
Рейтинг: 0 / 0
09.10.2015, 20:47
    #39073309
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
Perederiyjs дальше должен вызывать другой js
что за терминология?
может функция или метод должны быть вызваны?
...
Рейтинг: 0 / 0
09.10.2015, 20:50
    #39073311
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
ИзопропилPerederiyjs дальше должен вызывать другой js
что за терминология?
может функция или метод должны быть вызваны?

могу сказать иначе
js должен дернуть другой js
...
Рейтинг: 0 / 0
09.10.2015, 21:09
    #39073318
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
Perederiyjs должен дернуть другой js
ещё хуже
...
Рейтинг: 0 / 0
11.10.2015, 18:01
    #39073932
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jQuery и PHP
вопрос снят
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / jQuery и PHP / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]