Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22

Получение значения переменной php

12.03.2017, 22:05. Показов 1615. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть ajax запрос, которым я передаю картинку в файл php, там ее, конвертирую, делю, сохраняю части, а далее мне нужно вывести ссылку на часть картинки:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
var dataURL = canvas.toDataURL();
    $.ajax({
      type: "POST",
      url: "crop.php",
      data: { 
       imgBase64: dataURL
     }
 
   }).done(function(o) {
$(".loading").css("display", "none");
$(".modal-footer").append("<a href='upload/"+lastLine+"/part-0.jpg'>Первая часть</a>");
lastLine - строка, содержащая название папки, в php она есть и называется точно так же: $LastLine;
PHP
1
echo '<script language="javascript">var lastLine = '.$lastLine.';</script>';
Я попробовал в конец php файла добавить такую строку, но в консоли пишет, что не найдена переменная lastLine
Думаю, как-то по-другому нужно обратиться к серверу для получения этой переменной, но как?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.03.2017, 22:05
Ответы с готовыми решениями:

Получение значения из input добавленного через цикл PHP
Есть страница. При выборе опции с помощью jquery подгружается несколько элементов input. Выборка их количества и формирование на страницу...

Передача значения переменной php из формы в popup окне
Здравствуйте. Я пытаюсь написать скрипт анкеты(опросника). Каждый вопрос должен открываться в popup окне, и при нажатии кнопки...

Как php переменной присвоить значение переменной javascript?
есть переменная php как ей присвоить значение переменной javascript?

16
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
12.03.2017, 22:54
в вашем пхп файле вы можете вернуть например json объект, установив нужные заголовки и сделав json_encode( array( 'lastLine' => $lastLine ) );
и затем в done функции можете прочитать это значение.. в частности оно должно быть в переменной 'o'...
done( function( o ) { append( '...' + o.lastLine + ' ... ' ) } )
+- как-то так..
1
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
13.03.2017, 07:15
а что думаешь в приеме будет работать просто o.lastLine ? я всегда делаю сначала
JavaScript
1
var b = JSON.parse(o); b.lastLine //уже будет работать
1
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
13.03.2017, 10:48
Если посылать правильные заголовки - content-type application/json то не надо..
2
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
13.03.2017, 12:33  [ТС]
PHP
1
2
header('content-type:application/json');
json_encode(array('lastLine' => $lastLine));
JavaScript
1
$(".modal-footer").append("<a href='upload/"+o[lastLine]+"/part-0.jpg'>Первая часть</a>");
В консоли ошибка:Uncaught ReferenceError: lastLine is not defined
JavaScript
1
$(".modal-footer").append("<a href='upload/"+o['lastLine']+"/part-0.jpg'>Первая часть</a>");
Вместо моей o['lastLine'] получается undefined
JavaScript
1
$(".modal-footer").append("<a href='upload/"+o.lastLine+"/part-0.jpg'>Первая часть</a>");
Также undefined
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
13.03.2017, 12:40
Лучший ответ Сообщение было отмечено Mister Vlados как решение

Решение

у меня сработало вот так
PHP
1
2
3
header("Content-type: application/json; charset=utf-8");
$json = json_encode($result);
echo $json;
Добавлено через 24 секунды
ты echo забыл, у тебя ж ничего не печатается
1
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
13.03.2017, 13:07  [ТС]
PHP
1
2
3
header("Content-type: application/json; charset=utf-8");
$json = json_encode(array('lastLine' => $lastLine));
echo $json;
\
Написал так.
В Js
JavaScript
1
$(".modal-footer").append("<td><a href='upload/"+o.lastLine+"/part-0.jpg'>Первая часть</a></td>");
Опять же undefined (

Добавлено через 20 минут
Я не могу понять, проблема в php или js? Мне кажется что я не могу получить массив именно со стороны js
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
13.03.2017, 13:08
а в консоли смотрел ошибки? кодировка файла обработчика должна быть utf-8 w/o BOM иначе он в начало вывода будет втыкать три байта лишних
1
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
13.03.2017, 13:18  [ТС]
Нет ошибок в консоли, кодировка такая, какая нужна( urf-8 без BOM) Даже если бы была другая значение то хоть какое-то получалось, а не undefined( Гуглю, гуглю, а что-то результата нет(
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
13.03.2017, 13:28
сделай просто
JavaScript
1
console.log(o);
посмотри хоть какая-то строка приходит или нет
1
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
13.03.2017, 14:00  [ТС]
HTML5
1
2
3
4
5
6
7
Warning: Cannot modify header information - headers already sent by (output started at /home/h99362/data/www/vladissimo.ru/crop.php:1) in /home/h99362/data/www/vladissimo.ru/crop.php on line 7
 
Call Stack:
    0.0004    3068464   1. {main}() /home/h99362/data/www/vladissimo.ru/crop.php:0
    0.0005    3069840   2. header() /home/h99362/data/www/vladissimo.ru/crop.php:7
 
{"lastLine":"118"}
{"lastLine":"118"} - как я вижу значение все таки приходит

Добавлено через 26 минут
В общем, решил я это так, очень коряво конечно, но мне подходит:
JavaScript
1
2
3
4
5
var lastLine = o.split('{')[2];
lastLine = lastLine.split(':')[1];
lastLine = lastLine.replace(""", "");
lastLine = lastLine.replace(""", "");
lastLine = lastLine.replace("\}", "");
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
13.03.2017, 15:28
так ты пробовал в crop.php строку с header в самое начало ставить? покажи весь код этого файла
0
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
13.03.2017, 23:31  [ТС]
Уже не важно, хоть как-то да работает, буду дальше js изучать - пойму в чем ошибки были)
0
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
14.03.2017, 00:04
Тут не достаточно только js знать, в данном вопросе, нужно ещё http заголовки, как вообще он работает, как с ним php работает и как jquery посылает запрос.. т.к. нужно contentType и в .ajax() передавать тоже ( точно не помню как, но там можно json указать ).
Есть к чему стремиться, дерзай.
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
14.03.2017, 00:21
да у тебя ошибка ерундовая небось, выложил бы файл обработчик, там найдется что-нибудь

Добавлено через 1 минуту
грил же хеадер засунь в первую строку шапки в crop.php, ты пробовал?
0
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
14.03.2017, 22:20  [ТС]
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
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
//Получение и сохранения обрезанного изображения
$lines = file('database.log');
$lastLine = $lines[count($lines)-1];
 
$upload_dir = "upload/$lastLine/";
mkdir($upload_dir, 0777, true);
$img = $_POST['imgBase64'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = $upload_dir . "main.png";
$success = file_put_contents($file, $data);
$im = imagecreatefrompng($upload_dir . "main.png"); 
$W = imagesx($im); 
$H = imagesy($im);
$P = $W/$H;
// Разрезка на 9 частей
if ($P < 1.1) {
    $kolvo = 9;
    $w = (int)($W/3); 
    $h = (int)($H/3); 
    $s = 0;
    for($i=0,$k=9;$i<$k;$i++) { 
        $s = $s +1;
        $dst = imagecreatetruecolor($w,$h); 
        $x = $w*($i%3);  
        if(!($i%3)) $y = $h*($i/3); 
        imagecopy($dst, $im, 0, 0, $x, $y, $w, $h); 
        imageJPEG($dst,$upload_dir . "part-" .$s . ".jpg");   
    } 
}
//Разрезка на 6 частей
if ($P < 1.6 && $P>1.4) {
    $kolvo = 6;
    $w = (int)($W/3); 
    $h = (int)($H/2); 
    $s = 0;
    for($i=0,$k=6;$i<$k;$i++) { 
        $s = $s + 1;
        $dst = imagecreatetruecolor($w,$h); 
        $x = $w*($i%3);  
        if(!($i%3)) $y = $h*($i/3); 
        imagecopy($dst, $im, 0, 0, $x, $y, $w, $h); 
        imageJPEG($dst,$upload_dir . "part-" .$s . ".jpg");   
    } 
}
//Разрезка на 3 части
if ($P > 2.9) {
    $kolvo = 3;
    $part = 3; 
    $x = 0;
    $w = (int)($W/$part); 
    for($i=0, $k=$w*$part; $i<$k; $i+=$w) { 
        $x = $x + 1;
        $dst = imagecreatetruecolor($w,$H); 
        imagecopy($dst, $im, 0, 0, $i, 0, $w, $H); 
        imageJPEG($dst,$upload_dir . "part-" .$x . ".jpg");   
    } 
}
imagedestroy($im); 
file_put_contents("database.log", $lastLine+1,  LOCK_EX);
header("Content-type: application/json; charset=utf-8");
$json = json_encode(array('lastLine' => $lastLine, 'kolvo' => $kolvo));
echo $json;
$pathdir="upload/$lastLine/"; 
$nameArhive = "$lastLine.zip"; 
$zip = new ZipArchive; 
if ($zip -> open($nameArhive, ZipArchive::CREATE) === TRUE){ 
    $dir = opendir($pathdir); 
    while( $file = readdir($dir)){ 
            if (is_file($pathdir.$file)){ 
                $zip -> addFile($pathdir.$file, $file); 
            }
    }
    $zip -> close();
}
?>
Вот в общем мой crop.php, там много не нужного, но если я header в 1 строку пихаю то приходит undefined

Добавлено через 9 минут
А нет, стоп, я что-то путаю, можно удалить верхнее и это сообщение?
0
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
14.03.2017, 23:18
хэдеры обычно пишут в самом начале файла, т.к. если что-то вызывает ошибку ( например синтаксическая ошибка ), а после неё ставим header то будет ошибка headers already send..
вообщем помести хедер в 1-ю строку и убедись что у тебя кодеровка файла в порядке и до <?php нет никаких невидимых символов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.03.2017, 23:18
Помогаю со студенческими работами здесь

Получение переменной из php файла
Привет всем. Подскажите пожалуйста, в js не сильна и не могу решить задачу. Есть страница test1.php. Нужно с нее каждые 5 секунд отправлять...

Присвоение php переменной значения js переменной
Доброго времени суток, я только начинаю изучать JavaScript и у меня возник следующий вопрос: Имеется переменная созданная в JavaScript, в...

Передача значения переменной из JavaScript в PHP
Здравствуйте, есть код: &lt;a href=&quot;#&quot; class=&quot;but&quot;&gt;Ссылка&lt;/a&gt;&lt;/button&gt; &lt;span id=&quot;span&quot;&gt;&lt;/span&gt; &lt;script&gt; window.onload =...

Получение значения локальной переменной функции вне этой функции
Возможно ли переменную объявленную в функции использовать за ее пределами? Функции вызывается только 1 раз, больше вызывать ее нельзя.

Как поменять значение числовой переменной в зависимости от значения текстовой переменной
Доброго вам времени суток! Ломаю голову на следующей задачей, и не знаю, где ошибка: может быть в JS или в html коде. Не могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru