За последние 24 часа нас посетили 21432 программиста и 1695 роботов. Сейчас ищут 1903 программиста ...

Вопрос по JSON

Тема в разделе "JavaScript и AJAX", создана пользователем Hawk, 14 мар 2008.

  1. Hawk

    Hawk Активный пользователь

    С нами с:
    30 авг 2007
    Сообщения:
    201
    Симпатии:
    0
    Адрес:
    Беларусь
    [js]
    <script language="javascript" type="text/javascript" src="json.js"> </script>

    new Ajax.Request(
    "index.php",
    {
    postBody: "name="+name,
    onComplete:function(xhr) {
    var responseObj = JSON.parse(xhr.responseText);
    update(responseObj);
    }
    }
    );
    [/js]
    Скрипт получает name и отправляет ответ(данные просто для примера):
    PHP:
    1.  
    2. {
    3.     name: "<?=$name?>",
    4.     initial: "<?=strtoupper($name[0])?>",
    5.     likes: [ "JavaScript", "Skiing", "Apple Pie" ],
    6.     ingridients: {
    7.         apples: "3kg",
    8.         sugar: "1kg",
    9.         pastry: "2.4kg",
    10.         bestEaten: "outdoors"
    11.     }
    12. }
    13.  
    если использовать вместо JSON.parse() eval('(' ')') то все работает, а так в консоле пишет ошибку:
    Предупреждение: function stringify does not always return a value
    Источник: http://localhost/json.js
    Строка 213, Символ 8
    Исходный код:
    }

    и

    Предупреждение: assignment to undeclared variable JSON
    Источник: http://localhost/json.js
    Строка: 84

    в чем беда?
     
  2. Hawk

    Hawk Активный пользователь

    С нами с:
    30 авг 2007
    Сообщения:
    201
    Симпатии:
    0
    Адрес:
    Беларусь
    Нашел ответ вот в чем проблема была " !
    {
    name: "<?=$name?>",
    initial: "<?=strtoupper($name[0])?>",
    likes: [ "JavaScript", "Skiing", "Apple Pie" ],
    ingridients: {
    apples: "3kg",
    sugar: "1kg",
    pastry: "2.4kg",
    bestEaten: "outdoors"
    }
    }

    если кому-нибудь пригодиться то надо писать так:
    {
    "name": "<?=$name?>",
    "initial": "<?=strtoupper($name[0])?>",
    "likes": [ "JavaScript", "Skiing", "Apple Pie" ],
    "ingridients": {
    "apples": "3kg",
    "sugar": "1kg",
    "pastry": "2.4kg",
    "bestEaten": "outdoors"
    }
    }
    т.е. везде использовать ковычки!

    П.С. НЕ ПОКУПАЙТЕ КНИГУ AJAX на практике, опечаток просто ...
     
  3. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Слух.. а можешь написать код, для выполенния произвольного sql с передачей данных с сайта...
    Как можно проще...
     
  4. Hawk

    Hawk Активный пользователь

    С нами с:
    30 авг 2007
    Сообщения:
    201
    Симпатии:
    0
    Адрес:
    Беларусь
    Nemo
    что-то не уловил суть... Можно более конкретно? откуда SQL берется какие данные передаются? что-то ничего не понял:)