Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос по json
 
 автор: kapitalist   (10.05.2016 в 18:50)   письмо автору
 
 

Всем добрый вечер. Только начал учиться работать с json.

Написал пхп код

$sql = "SELECT id, name FROM `$db` WHERE `id_brand`='$id'";
$query = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($query) > 0) {
    while(($resultArray[] = mysql_fetch_assoc($query)) || array_pop($resultArray));
}
echo json_encode( $resultArray );


Затем js код, который должен создать селект.

$('select[name=brand]').change(function() {
        var id = $(this).val();
        $.post( "modules/search.php", { db: "model", id:id },
            function( data ) {
                console.log(data);
                for(var i=0; i<data.length; i++) {
                    $('select[name="model"]').append( $('<option />', {'value': data.id, 'text': data.name}) );
                }
            },
            "json"
        );
    });


Но в консоле отображается [Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]

И я не понимаю в какую сторону копать. Подскажите, пожалуйста!

  Ответить  
 
 автор: confirm   (10.05.2016 в 18:55)   письмо автору
 
   для: kapitalist   (10.05.2016 в 18:50)
 

А что там еще должно отображаться? Вы передаете с сервера ассоциативный массив, а в JS таковых нет, есть объекты, где ключ ассоциативного массива, это свойство объекта, под которым значением.

У вас массив объектов, которые вы обходите циклом, а значит и вставлять надо
{'value': data[i].id, 'text': data[i].name}

В JQ есть .each() вы же все равно ее используете.

  Ответить  
 
 автор: kapitalist   (10.05.2016 в 19:33)   письмо автору
 
   для: confirm   (10.05.2016 в 18:55)
 

{'value': data[i].id, 'text': data[i].name} - спасибо, сам как-то не сообразил (((

про each я не понял. Зачем мне в моем случае этим пользоваться?

  Ответить  
 
 автор: confirm   (10.05.2016 в 19:51)   письмо автору
 
   для: kapitalist   (10.05.2016 в 19:33)
 

А зачем вы к примеру используете foreach?

  Ответить  
 
 автор: kapitalist   (11.05.2016 в 10:39)   письмо автору
 
   для: confirm   (10.05.2016 в 19:51)
 

пробегаю по массиву ))
Я не силен в js, сделал по такому же принципу как и в пхп
я так понял можно было сделать примерно так $('#my_select option').each(function() ?

  Ответить  
 
 автор: confirm   (11.05.2016 в 19:28)   письмо автору
 
   для: kapitalist   (11.05.2016 в 10:39)
 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script> 
$(function() {
    var o = [
        {id : 3, name : "as1"},
        {id : 4, name : "as2"},
        {id : 5, name : "as3"}
    ];
    $.each(o, function() {
        alert(this.id + '/' + this.name)
    })
});
</script>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования