Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.07.2015, 13:40
Новичок на форуме
Отправить личное сообщение для Evsik Посмотреть профиль Найти все сообщения от Evsik
 
Регистрация: 09.07.2015
Сообщений: 4

как передать php массивы через ajax
Итак, имеется страница с GET переменной $_GET[id], с помощью которой осуществляется запрос к БД, и все поля из таблицы плюс эта GET-переменная засовываются в массив $page,

$page['id']=$_GET[id];

$sel = "SELECT * FROM users WHERE id='$_GET[id]'";
$res = mysql_query($sel); 

$page_data=mysql_fetch_assoc($res);

$page['login']=$page_data['login'];
$page['name']=$page_data['name'];
$page['sirname']=$page_data['sirname'];

только полей в 4 раза больше

Также на странице используются сессии ($_SESSION[]).
Пока, надеюсь, все ясно

Имеется div class="page" в котором нужно обновлять контент из бд, используя переменные в массивах, все работает идеально (без обновлений) но задача такова.

Начал я решать эту задачу вырезав все в .page в отдельный php документ и пытался его загружать через $(".page").load("elems/page_content"); c setInterval, но терялось соединение с бд и массивов было не достать, кстати тоже не знаю почему. Но тут меня осенило, я решил через AJAX, ведь с ним можно передавать данные в data, но тут загвоздка, как передать массивы $page и $_SESSION ???

Буду очень благодарен если покажете что и как.

код получился такой

function show() 
{ 
$.ajax({ 
url: "/elems/user-published.php", 
cache: false, 
data:page:<?php echo $page?>,
beforeSend: function(){
$(".page").html("");
},
success: function(data){ 
$(".page").html(data); 
} 
}); 
} 

$(document).ready(function(){ 
show(); 
setInterval('show()',5000); 
});
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2015, 18:15
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

А почему у вас нет индента в исходнике?
Ответить с цитированием
  #3 (permalink)  
Старый 09.07.2015, 18:18
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Evsik
Итак, имеется страница с GET переменной $_GET[id]
В html никаких страниц с $_GET'ами не бывает. Файл скрипта php не обязан и не отождествляет страницу html. $_GET может парситься на дальних подступах. В особо идиотских случаях типа DLE - прямо в индексе.
Ответить с цитированием
  #4 (permalink)  
Старый 09.07.2015, 18:22
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Evsik
$sel = "SELECT * FROM users WHERE id='$_GET[id]'";
Дыра детектед.

Когда же дочитаю до сути...
Ответить с цитированием
  #5 (permalink)  
Старый 09.07.2015, 18:28
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Evsik
но тут загвоздка, как передать массивы $page и $_SESSION ???
Начните человеческим языком описывать задачу, без цитирования смешных кодов.

Что вы там делаете и что хотите еще сделать?
Ответить с цитированием
  #6 (permalink)  
Старый 10.07.2015, 12:36
Новичок на форуме
Отправить личное сообщение для Evsik Посмотреть профиль Найти все сообщения от Evsik
 
Регистрация: 09.07.2015
Сообщений: 4

Так-с, еще раз, понятнее
Сообщение от kostyanet Посмотреть сообщение
Начните человеческим языком описывать задачу, без цитирования смешных кодов.
Хорошо, постараюсь без воды.
Суть: надо с помощью ajax обновлять данные из page_content.php, как в параметре data отправить массивы, и возможно ли это вообще?
На счет смешных кодов и выражений, да c GET неправильно выразился, но думаю, понятно, что я имел в виду. Еще упомяну, что с JS я плохо дружу, так что прошу не казнить.
Ответить с цитированием
  #7 (permalink)  
Старый 10.07.2015, 20:43
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

То есть было так

плоскость дерева относительно конструкции повернуть на 90 градусов по вертикали

я попросил по-человечески

плоскость дерева которая одним краем на шарнирах повернуть по вертикали на 90 градусов от себя чтобы возник проход

а подразумевается вот что

как пройти открыв дверь

Вы реально не понимаете что такое по-человечески? То есть не можете описать задачу, которую будет решать скрипт?

По-человечески: надо скачать данные не перегружая страницу. - Это и так известно как делается. В чем особенность скачивания данных на вашем сайта? Что нет точки входа, а произвольно выбранный файл не имеет коннекта с БД? Так сделайте как у людей - или точку входа, или грузите этот коннект по требованию.
Ответить с цитированием
  #8 (permalink)  
Старый 10.07.2015, 20:45
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Чтобы передать данные с сервера в браузер аяксом ничего вообще особенного делать не надо - любой output окажется там где надо.

Чтобы передать данные с браузера на сервер, вообще ничего особенного делать не надо - это стандартная процедура передачи данных с формы, или урлом. То есть потом или гетом соотв.

ЗЫ Не парьтесь, я посмотрел что вы там на php придумали и понял что осилить остальное вам будет крайне трудно. Лучше и не мучиться.

Последний раз редактировалось kostyanet, 10.07.2015 в 20:53.
Ответить с цитированием
  #9 (permalink)  
Старый 10.07.2015, 20:57
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ну или попробуйте. Найдите несколько отличий

$page['id']=$_GET[id];

$sel = "SELECT * FROM users WHERE id='$_GET[id]'";
$res = mysql_query($sel); 

$page_data=mysql_fetch_assoc($res);

$page['login']=$page_data['login'];
$page['name']=$page_data['name'];
$page['sirname']=$page_data['sirname'];


и

$id=(int)$_GET['id'];

$sel = 'SELECT * FROM users WHERE id='.$id.';';
$res = mysql_query($sel); 

$page=mysql_fetch_assoc($res);


и поймите почему это одно и то же.

Кстати "дыру" забираю. Я не заметил что иде закрыто кавычками. А оно точно текст?
Ответить с цитированием
  #10 (permalink)  
Старый 11.07.2015, 01:07
Новичок на форуме
Отправить личное сообщение для Evsik Посмотреть профиль Найти все сообщения от Evsik
 
Регистрация: 09.07.2015
Сообщений: 4

То, что не текст я в (int) переделываю позже, а на счет id, да, уверен, а так, спасибо за некоторые идеи. Плюс я пришел к работающему решению задачи, так что вопрос можно считать закрытым.

Последний раз редактировалось Evsik, 11.07.2015 в 01:10.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как все ссылки передать ajax anton41k Общие вопросы Javascript 2 05.09.2014 21:22
как передать измененные параметры AJAX в другую функцию? akselei Элементы интерфейса 2 19.10.2013 12:46
Как передать значение из php в html через js Mateus jQuery 5 26.12.2012 22:24
Ребят как передать значение из php в src название изображения! SpiritDark Элементы интерфейса 4 14.05.2012 14:02
есть переменная javascript надо передать ее в php как это сделать arahmanov Общие вопросы Javascript 5 08.08.2011 16:26