[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача значений из JS в php
Страницы: 1, 2, 3, 4, 5
hammer_tm
Добрый день, в Java Script'е не понимаю, но вот возникла ситуация когда нужно передать значение из Java Script в php.

Есть скрипт от vk.com

<script>
VK.Api.call('users.get', {user_ids: 1}, function(r) {
if(r.response) {
alert('Привет, ' + r.response[0].first_name);
}
}
);
</
script>


и ниже код php

<?php
echo "Привет ".$user_name;
?>


Т.е. при выполнении кода появляется всплывающее окно с надписью Привет, Павел
Как вместо этого всплывающего окна передать значение Павел в php в переменную $user_name ?
Если задаю банальные вопросы, сильно меня не ругайте.
AllesKlar
jQuery.get()

jQuery.post()

сделать скрытый <img> в src подсунуть ему адрес скрипта с параметром

var req = new XMLHttpRequest();
req.open("GET", "example/data.txt", false);
req.send(null);


_____________
[продано копирайтерам]
hammer_tm
На моем примере показать можете?
А без jQuery никак не обойтись?
AllesKlar
Цитата (hammer_tm @ 8.02.2016 - 07:39)
А на моем примере показать можете?

Нет, не могу, к сожалению, я еще больше ленив, чем ты.
Подожди пару часов, придут студенты, сделают тебе за пару сотен рублей.

_____________
[продано копирайтерам]
VeRTak
Цитата (hammer_tm @ 8.02.2016 - 09:39)
На моем примере показать можете?
А без jQuery никак не обойтись?


user posted image
Игорь_Vasinsky
На моем примере показать можете?

тоже лень, если тока за 300р.

А без jQuery никак не обойтись?
можно

    function ajaxcl (data) {
var xmlhttp;
if ( window.XMLHttpRequest ) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" );
}
xmlhttp.onreadystatechange = function () {
if ( xmlhttp.readyState == 4 ) {
//тут ответ сервера
var result = xmlhttp.responseText;
}
}

//куда ушёл запрос
xmlhttp.open ( "GET", "/getdata.php?param="+data+"&rand="+Math.random(), true );
xmlhttp.send ();
}


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
hammer_tm
Нашел решение.
Но не до конца его понимаю.
Может кто-нибудь объяснить логику и порядок выполнения скрипта?
Как может JS и PHP выполняться одновременно? Или я чего то не понимаю?
Но код работает. echo $user_name; выводит: Павел

<script>
VK.Api.call('users.get', {user_ids: 1}, function(r) {
if(r.response) {

document.getElementById('first_name').innerHTML=r.response[0].first_name;
}
}
);

</
script>


<?php
$user_name = "<div id='first_name'></div>";
echo $user_name;
?>
sergeiss
Цитата (hammer_tm @ 8.02.2016 - 11:11)
Нашел решение.
Но не до конца его понимаю.

ПХП формирует HTML. Этим кодом ты создаешь HTML с нужными параметрами.

Проблема в том, что ты ставишь один вопрос (как из JS передать данные в ПХП), но показываешь найденное решение о передаче данных из ПХП в JS. Получается, что ты изначально неправильно поставил вопрос. Определись, что именно тебе надо. Опиши подробнее.



_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
hammer_tm
Цитата (sergeiss @ 8.02.2016 - 10:30)

Определись, что именно тебе надо. Опиши подробнее.

Самое главное надо было сделать что бы вместо всплывающего окна с надписью "Привет, Павел"
alert('Привет, ' + r.response[0].first_name);

выводилась надпись с помощью переменной $user_name

Что я и сделал с помощью

document.getElementById('first_name').innerHTML=r.response[0].first_name;

и

$user_name = "<div id='first_name'></div>";
echo $user_name;


Я не понимаю порядок выполнения скрипта.
1.) Запрос на сервер vk.com r.response[0].first_name
2.) Полученный ответ заносится в <div id='first_name'></div>
3.) Переменной $user_name присваивается значение <div id='first_name'></div>
4.) Вывод результата

Или как?
И участвует ли в этом браузер пользователя или выполнение происходит на стороне сервера?

Кстати, в самом начале php файла нашел ob_start();
Может ли это как-то влиять на выполнение моего скрипта?
Игорь_Vasinsky
1. JS получает ответ от удалённого сервера
2. в этот момент ты подготавливаешь элемент в DOM страницы
3. ты вставляешь ответ сервера в элемент

ob_start() - это буферизация, просто для отложенного вывода, например

у тебя логично всё.

php быстро нарисует DIV, тем более - пока поступить ответ от удалённого сервера.

браузер участвует там где у тебя JS

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
просто чё тебя чистый JS не устроил

<script>
VK.Api.call('users.get', {user_ids: 1}, function(r) {
if(r.response) {
var newDiv = document.createElement("div");
newDiv.innerHTML = 'Привет, ' + r.response[0].first_name;
var body = document.getElementsByTagName('body');
body.appendChild(newDiv);
}
}
);
</
script>

вместо appendChild есть ещё и http://www.w3schools.com/jsref/met_node_insertbefore.asp

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
hammer_tm
Цитата (Игорь_Vasinsky @ 8.02.2016 - 11:02)

php быстро нарисует DIV, тем более - пока поступить ответ от удалённого сервера.

А может быть такое что ответ от удаленного сервера потупит до того как php нарисует div ?

Для этого нужна буферизация с помощью ob_start() ?

Насколько безопасен такой вариант скрипта для подмены данных со стороны браузера (пользователя) если я записываю значение $user_name в базу MySQL ?
Т.к. у меня скрипт не проверяет откуда именно поступили данные (с какого сервера)
Сорри, если задаю тупые вопросы :-)
hammer_tm
Цитата (Игорь_Vasinsky @ 8.02.2016 - 11:07)

просто чё тебя чистый JS не устроил

<script>
VK.Api.call('users.get', {user_ids: 1}, function(r) {
  if(r.response) {
    var newDiv = document.createElement("div");
          newDiv.innerHTML = 'Привет, ' + r.response[0].first_name;
    var body = document.getElementsByTagName('body');
          body.appendChild(newDiv);
  }
}
);
</
script>

вместо appendChild есть ещё и http://www.w3schools.com/jsref/met_node_insertbefore.asp


Не устроил, т.к. нет возможности работать с полученными значениями на php, например записать полученный ответ в MySQL или задать условие с помощью

<?php
if($user_name == "Павел"){
echo "Это Павел";
}else{
echo "Это не Павел";
}
?>


и т.д.
Игорь_Vasinsky
в БД можно записать всё посредством ajax
тебе писали http://phpforum.su/index.php?act=Print&cli...limin=1&limit=1
и мой пост тоже

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
hammer_tm
Цитата (Игорь_Vasinsky @ 8.02.2016 - 11:20)
в БД можно записать всё посредством ajax
тебе писали http://phpforum.su/index.php?act=Print&cli...limin=1&limit=1
и мой пост тоже

Но не задавать условия типа:

<?php
if($user_name == "Павел"){
// выполнить какой-то код
}else{
// Выполнить другой код
}
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.