?

Log in

No account? Create an account
В предыдущей теме я со всеобщей помощью разобрался, как передавать данные из Javascript в PHP с помощью JSON, за что очень всем благодарен.

Все было хорошо, пока мне не понадобилось передать целый объект.
Скрипт тот же самый, лишь в аякс запросе подставил свой объект.
Нагуглил несколько примеров, но они почему-то не работают.

UPD:
Из замечаний sontar'a я выяснил, что важно знать, какой именно передается объект. Мой объект содержит строковые свойства и многомерный массив. Это выглядит так:



Такое сообщение выводит PHP, если не использовать json_decode. А если использовать - выдает ошибку. Тип декодированной переменной - NULL.
Пробовал передавать объект без многомерного массива - работает. Тип декодированной переменной - object.

 
 
 
29 Май 2009 @ 10:44
json  
Разбираюсь с передачей данных из Javascript в PHP и никак не получается.

Этот код передает массив arr на обработку файлу dataparser.php:

            $.ajax({
                    url:'dataparser.php'
                    , type:'POST'
                    , data:'jsonData=' + $.toJSON(arr)
                    , success: function(res) {
                           alert(res);
                    }
            });


В файле dataparser.php данные обрабатываются следующим образом:

            $data = ($_POST['jsonData']);
            $decoded= json_decode($data,true);
            foreach ($decoded as $key=>$value) {
                  $message.= 'Параметр: '.$key.'; Значение: '.$value.'\n';
            }
            echo $message;

Вроде бы все просто, а уже четвертый день не могу побороть. Команда json_decode не может преобразовать данные и на выходе получается NULL. Тип $decoded тоже NULL.

При выводе строки JSON данных

            echo $data;

выдает такую картинку

Закрадывается подозрение, что слеши лишние, т. к. созданная вручную JSON строка ["item1","item2","item3"] успешно декодируется.

 
 
24 Май 2009 @ 16:50
Дано: код на JQuery и масса глюков :)

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

Скрипт с использованием JQuery отправляет ajax-запрос на сервер и обрабатывает ответ. Если пришёл ответ - выполняет какие-то действия, в зависимости от ответа. При возникновении ошибки генерирует сообщение об ошибке.

НО! При диагностике FireBug'ом выяснилось, что периодически ответ от сервера приходит, а скрипт всё равно генерирует сообщение об ошибке.
(в привёденном ниже скрипте это сообщение: "Сервер не отвечает.Повторите попытку")

Причём, на разных машинах ошибка вылезает с разной частотой.

Глюк происходит и при обработке пришедших данных как JSON, и обработке их как обычный текст.

В чём может быть проблема и как её разрулить?

скрипт под катомСвернуть )
 
 
22 Май 2009 @ 02:36
Есть задача: при клике мышкой на некий элемент произвести некоторые действия при помощи аякса, при этом в php получить id элемента по которому кликнули, ибо то что он должен выдать из БД напрямую зависит от элемента на котором кликнули.
Функция вызывается при загрузке страницы:

.js Выглядит примерно так:
function todo(some) 
{
	//....
	function load(data) 
	{
		//....
	}
	$.ajax
	({
		url: url,
		data: data.info,
		dataType: "json",
		success: onSuccess,
		error: onAjaxError,
		cache: false
	})
	load(data)
}


примерро так .php:

PS: с аяксом знакома недавно, так что хз - возможно вопрос и слишком тупой, или наборот я чего-то не того хочу. В прочтаных книгах\статьях попадались лишь примеры с php совершенно не зависящими от содержимого страницы... И да - я хз к аяксу это вопрос или исключительно к php. Если обращаюсь не по адресу - сорри.
 
 
06 Май 2009 @ 12:05
Привет всем!

У меня сына зовут Аякс.


Он вот такой: 
Аякс палыч Полуэктов

Такие дела. :)) Аякс Палыч Полуэктов.
Он же Яша, он же Якс, он же Аяшка, он же Ясик, он же Аяксун, он же Аяксыч, он же Аякстати, он же Ая, он же Палыч, он же Полуэктик..

Пс: Назван не в честь языка программирования, и даже не в честь героев Гомера. А просто так вот случилось.

Привет сообществу!


 
 
 
Подскажите, сколько стоит разработка портала "с нуля"? Нуль - когда говорят: "Сделай сайт об автомобилях". Т.е. входят такие работы:
1. Анализ рынка;
2. Выбор целевой аудитории;
3. Составление бизнес-плана;
4. Постановка технического задания программистам и дизайнерам;
5. Создание эскизов всех шаблонов;
6. Создание схемы работы сайта (описание фсего функционала и логики);
7. Разработка стратегии продвижения ресурса.

Спасибо!
 
 
09 Февраль 2009 @ 12:30
Уважаемые, мне нужен один урок по ajax
Продолжительность 2-3 часа
Меня интересует два вопроса

1) Проверка ввода формы
2) Добавление динамичности таблицам

сам (себе) пишу на html+php+mysql
к сожалению яваскритп практически не знаю.

самоучка, но на ajax _сейчас_ нет времени

До конца недели урок готов пройти в Питере
с 16 февраля в Москве

Предложите условия.

С ув.
Константин
 
 
22 Декабрь 2008 @ 21:18
Всем доброго времени суток.
Кто может помочь в следующей проблеме?
Нужно сделать следующее:
http:// vконтакте .ru/search.php?act=mixed&97935 вот здесь есть форма расширенного поиска с элементами меню Страна -> Город
что-то аналогичное нужно т.е. при выборе страны из базы данных во втором меню подгружались элементы (города) из соответствующей таблицы в БД
Как работает взаимодействие с базой данных я примерно понял, но как это реализовать в виде выплывающего меню я никак не пойму.
Заранее спасибо
 
 
09 Декабрь 2008 @ 23:24

Разыскивается компонента (скрипт, библиотека), которая ведет себя как ЛайтБокс (т.е. весь экран затемняется, выскакивает окошко и в нем полезная информация или картинки), но представляет из себя почти браузер (или старый добрый iframe), в котором имеется навигация по ссылкам.

Т.е. например сидел юзер работал с системой, захотел посмотреть хелп, всплыл этот ЛайтБокс, в нем хелп, он с одной статьи перешел на другую, третью. Удовлетворился хелпом, шелкнул вне рамок этого Лайтбокса и вот он там где остановился.

Может есть соображения как реализовать это на ЛайтБоксе?

 
 
Здравтсвуйте, есть проблема, сначала приведу код, потом вопрос.

post.js

function func(inputData) {
    var inputData = inputData;
    alert('inputData.data.id before POST   ' + inputData.data.id);   
    $.post("controller.php",
        {id: inputData.data.id, _action: "test"}, 
        function(data){
                alert('data.id from RESPONSE   ' + data.id);
               alert('inputData.data.id after POST   ' + inputData.data.id);
        },
        'json'
    );
}


index.phtml

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="../js/jquery-1.2.3.js"></script>
    <script type="text/javascript" src="post.js"></script>
</head>
<body>
    <input type="button" value="OK" id="send_post">
    <script>
        var myData = {data: {id: 'sss'}};
        func(myData);
        $('#send_post').bind('click', {id: 'sss'}, func);
    </script>
</body>
</html>



controller.php

<?php
    if ($_POST['_action'] == 'test') {
        echo json_encode(array('id' => 111));   
    }
?>



При загрузке страницы сразу выполняется POST запрос к controller.php, куда посылается myData, после удачного ответа я вывожу inputData.data.id, все ок. Эта переменная имеет значение. НО, если я привязываю событие на нажатие кнопки, выполняется тоже самое действие, но в этом случае при попытке обратиться к inputData.data.id выдается ошибка

Error Message: 'inputData.data.id' is null or not an object

Эта ошибка только в IE, в остальных браузерах все в порядке. Что jquery делает с объектом при вызове bind('click',{blabla},func), что IE не может потом распознать это объект? Как обойти данную проблему?

Спасибо.