Передать переменную из Javascript в PHP

F
На сайте с 17.11.2011
Offline
0
9461

Народ подскажите как сделать

Есть допустим такой скрипт (в файле 2.php):


<script src="http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js"></script>
<script>
var d = new Date();
var hours = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
$.get("2.php", {hours:hours, minutes:minutes, seconds:seconds },
function(data){ alert (data); });
</script>

<?php print_r($_GET);?>

В Javascript создаются переменные, потом нужно чтобы эти переменные попали в PHP. Пробую метод $.get, если запустить пример выше, то в окне alert'a высветится

Array

(

[hours] => 21

[minutes] => 35

[seconds] => 36

)

Но в массиве $_GET ничего нет

Каким образом можно вытащить эти перменные из JS в пхп ???

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

мм.... ну чисто поржать, а почему в массиве GET, что-то должно быть? :)

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
R
На сайте с 28.04.2007
Offline
155
Rel
#2

<script>

var d = new Date();

var hours = d.getHours();

var minutes = d.getMinutes();

var seconds = d.getSeconds();

document.write("<img width=0 heigth=0 src=2.php?hours="+hours+"&minutes="+minutes+"&seconds="+seconds+">");

</script>

Дешевое продление и регистрация .RU/.РФ в RU-CENTER - 190 руб. (/ru/forum/758778) в розницу. http://nic.regdomains.ru (http://nic.regdomains.ru) - регистрация и продление доменов в автоматическом режиме.
C
На сайте с 04.02.2005
Offline
291
#3

Array

(

[hours] => 21

[minutes] => 35

[seconds] => 36

)

а разве это не есть ответ php скрипта?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4
Rel:
<script>
var d = new Date();
var hours = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
document.write("<img src=2.php?hours="+hours+"&minutes="+minutes+"&seconds="+seconds+">");
</script>

Ох ёмаё, как хитро то а... 🤪

iguania
На сайте с 10.12.2010
Offline
72
#5

Не хочешь GET-запросом передавать, юзай XML. Вот те пример передачи GET

window.location.href = "http://localhost/view.php?

width=" + width +
"&height=" + height +
"&color=" + colorDepth;
Все всегда заканчивается хорошо. Если все закончилось плохо, значит, это еще не конец…
F
На сайте с 17.11.2011
Offline
0
#6
LEOnidUKG:
Ох ёмаё, как хитро то а... 🤪

Я хотел изначальна массив POST заполнить, это можно как сделать ?

Все такие написано в описаняих функций jquery есть функции $.get и $.post , которые должны передать судя по описаниям переменные

Joker-jar
На сайте с 26.08.2010
Offline
171
#7
если запустить пример выше, то в окне alert'a высветится

Array
(
[hours] => 21
[minutes] => 35
[seconds] => 36
)

Но в массиве $_GET ничего нет

Твой скрипт запрашивается дважды, сначала при загрузке страницы, затем при ajax-запросе. В первом случае, понятное дело, массив $_GET пуст. При ajax-запросе уже передаются GET-параметры, которые отображаются в алерте.

Имхо, свою задачу решил изначально сам, просто немного запутался в этом. В PHP-скрипте можно делать проверку, вызван ли он при помощи ajax-запроса так:

if ( strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) {...}

и делать обработку принятых переменных.

F
На сайте с 17.11.2011
Offline
0
#8
Joker-jar:
Твой скрипт запрашивается дважды, сначала при загрузке страницы, затем при ajax-запросе. В первом случае, понятное дело, массив $_GET пуст. При ajax-запросе уже передаются GET-параметры, которые отображаются в алерте.

Имхо, свою задачу решил изначально сам, просто немного запутался в этом. В PHP-скрипте можно делать проверку, вызван ли он при помощи ajax-запроса так:

if ( strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) {...}

и делать обработку принятых переменных.

Мы проверим этот запрос, а как мы получим переменные если их нет ни в одном массиве ? Даже уже хотел спарсить регуляркой нужный кусок кода, но он не видит сгенерированные значения, а видит только код ... Еще не удобно блин разбираться и писать - в армии сейчас)

По идее мне нужна такая штука - получить текуще время, именно то что на компе сейчас у пользователя и записать его в БД. Сначала делалось все через PHP но в заголовках пользователя не передается текущее время, а функции времени в пхп работают относительно времени сервера и чтобы время отображалось корректно без явыскрипт не знаю как обойтись. Есть вариант еще разницу передавать иежду временем сервера и текущего пользователя, но застрял - не могу кинуть сгенерированную переменную из явыскрипта в пыху....😡

Заранее спасибо!

I
На сайте с 23.12.2010
Offline
25
#9
ffey:
Я хотел изначальна массив POST заполнить, это можно как сделать ?
Все такие написано в описаняих функций jquery есть функции $.get и $.post , которые должны передать судя по описаниям переменные


$(document).ready(function(){
var d = new Date();
var hours = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
$.ajax({
type : 'POST',
url : 'post.php',
dataType : 'json',
data: {
hours : hours,
minutes : minutes,
seconds : seconds
},
success : function(data){alert (data.msg);},
error : function(XMLHttpRequest, textStatus, errorThrown) {}
});
});


post.php:

if (empty($_POST[''])) {
$return['error'] = true;
$return['msg'] = 'Epmty';
}
else {
$return['error'] = false;
$return['msg'] = 'hours : ' . $_POST['hours'];
}

echo json_encode($return);

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий