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

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

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

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

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


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


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

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

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

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

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

но при этом php в любом случае файл на винте формирует
...
Рейтинг: 0 / 0
jQuery и PHP
    #39073102
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Perederiy,
без конкретного кода врядли помогут тебе
...
Рейтинг: 0 / 0
jQuery и PHP
    #39073110
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
jQuery и PHP
    #39073117
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Perederiy , просто потестируй свой код. Посмотри, что ты в итоге получаешь на клиенте.
...
Рейтинг: 0 / 0
jQuery и PHP
    #39073244
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Perederiy,

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

Если есть сомнения и всё туманно, то тестирование яваскрипта можно провести не на пхпшном скрипте, а на простом текстовом файле (заглушке) с контентом, представляющим собой ожидаемый клиентом ответ от сервера ответом.
...
Рейтинг: 0 / 0
jQuery и PHP
    #39073267
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
jQuery и PHP
    #39073307
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Perederiy,
Что за функция moveNextSection()
...
Рейтинг: 0 / 0
jQuery и PHP
    #39073309
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Perederiyjs дальше должен вызывать другой js
что за терминология?
может функция или метод должны быть вызваны?
...
Рейтинг: 0 / 0
jQuery и PHP
    #39073311
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилPerederiyjs дальше должен вызывать другой js
что за терминология?
может функция или метод должны быть вызваны?

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


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