Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 25 Май, 2012, 05:47:17

Страниц: [1] 2 3
Печать
Автор Тема: Снова вопрос по динамическим select-ам  (Прочитано 842 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Lion_astana    ↓ 
18 Ноябрь, 2010, 08:41:12
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

Привет всем!Помогите советом или делом если можете.Проблема-не могу вставить массив с данными не из 1.txt и 2.txt, а из базы данных.Пробовал по-всякому, например так:
PHP
$db = mysql_connect ("localhost","alex","12345");
mysql_select_db("optoviki",$db);
 

 
$country_id = @intval($_GET['country_id']);
 
$result2 = mysql_query ("SELECT `id`,`title` FROM `gorod` WHERE `id_strana` = $country_id",$db);
$myrow2 = mysql_fetch_array($result2);
list($id,$title) = $myrow2;
$result = array('type'=>'success','regions'=>array($id,$title));
       
 
/*
 * Упаковываем данные с помощью JSON
 */

print json_encode($result);

При такой писанине во втором селекте появляется по 2 одинаковых опшена:undefined.
Оригинал был взят из статьи с этого же сайта,вот он:
PHP
$country_id = @intval($_GET['country_id']);
 
if (file_exists(dirname(__FILE__) . '/' . $country_id . '.txt')) {
    $regions = array();
    $regs = file(dirname(__FILE__) . '/' . $country_id . '.txt');
    $i=1;
    foreach ($regs as $r) {
        $regions[] = array('id'=>$i, 'title'=>trim($r));
        $i++;
    }
   
    $result = array('type'=>'success', 'regions'=>$regions);
}
else {
    $result = array('type'=>'error');
}
 
/*
 * Упаковываем данные с помощью JSON
 */

print json_encode($result);

есть какие-нибудь мысли?
Записан
rider-sx    ↓ 
18 Ноябрь, 2010, 10:14:52 , спустя 1 час 33 минуты 40 секунд
НЕ ХУЕТА! ХУЕТА!

drmmmmmm
Группа: Адекваты

Карма: 32
Сообщений: 2718
Сила слова: 1.18

PHP

$regions = array();
while($myrow2=mysql_fetch_assoc($result2)) {
  $regions[] = $myrow2;
}
 
$result = array('type'=>'success','regions'=>$regions);
 
Записан

Lion_astana    ↓ 
18 Ноябрь, 2010, 10:26:32 , спустя 11 минут 40 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

Всё равно не работает, правда увеличилось количество undefined -ов в опшенах.Есть ещё идеи?
Записан
phpdude    ↓ 
18 Ноябрь, 2010, 10:29:21 , спустя 2 минуты 49 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20790
Сила слова: 1.65

хуйня войня, учите яваскрипт и json
Спустя 23 секунды добавил
и поиграйте в "угадай слова", а слова те - котоыре вы ищите на клиенте и отправляете на сервере
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Lion_astana    ↓ 
18 Ноябрь, 2010, 10:38:59 , спустя 9 минут 38 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

Я в данный момент как раз и учу яваскрипт, по пути возникают вопросы на которые не могу найти ответы, поэтому и спрашиваю на данном форуме.Тем более что в статье про динамические селекты написано:
 
"А у меня все в базе?
 
Без проблем, можете, используя country_id, вытаскивать регионы из базы, если храните данные в ней."

 
Вот я и пробую это осуществить, думал будет всё без геммороя, но увы...
Ещё у кого-нибудь есть мысли?
Записан
rider-sx    ↓ 
18 Ноябрь, 2010, 12:23:08 , спустя 1 час 44 минуты 9 секунд
НЕ ХУЕТА! ХУЕТА!

drmmmmmm
Группа: Адекваты

Карма: 32
Сообщений: 2718
Сила слова: 1.18

Lion_astana, покажите ка дамп базы и код на жс
Записан

Lion_astana    ↓ 
18 Ноябрь, 2010, 01:18:12 , спустя 55 минут 4 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

Вот жс(тот же самый как и в примере):
 
Java
$(document).ready(function () {
    $('#country_id').change(function () {
        var country_id = $(this).val();
        if (country_id == '0') {
            $('#region_id').html('');
            $('#region_id').attr('disabled', true);
            return(false);
        }
        $('#region_id').attr('disabled', true);
        $('#region_id').html('<option>загрузка...</option>');
       
        var url = 'get_regions.php';
       
        $.get(
            url,
            "country_id=" + country_id,
            function (result) {
                if (result.type == 'error') {
                    alert('error');
                    return(false);
                }
                else {
                    var options = '';
                    $(result.regions).each(function() {
                        options += '<option value="' + $(this).attr('id') + '">' + $(this).attr('title') + '</option>';
                    });
                    $('#region_id').html(options);
                    $('#region_id').attr('disabled', false);
                }
            },
            "json"
        );
    });
});
 

Вот БД(с таблицей gorod к которой я обращаюсь):
 
SQL
-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Ноя 18 2010 г., 10:09
-- Версия сервера: 5.0.45
-- Версия PHP: 5.2.4
--
-- БД: `optoviki`
--
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `gorod`
--
 
CREATE TABLE `gorod` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `id_strana` int(3) NOT NULL,
  `title` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=24 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=24 ;
 
--
-- Дамп данных таблицы `gorod`
--
 
INSERT INTO `gorod` VALUES (1, 1, 'Астана');
INSERT INTO `gorod` VALUES (2, 1, 'Алматы');
INSERT INTO `gorod` VALUES (3, 1, 'Шымкент');
INSERT INTO `gorod` VALUES (4, 1, 'Семей');
INSERT INTO `gorod` VALUES (5, 2, 'Ижевск');
INSERT INTO `gorod` VALUES (6, 2, 'Екатеринбург');
INSERT INTO `gorod` VALUES (7, 2, 'Ковров');
INSERT INTO `gorod` VALUES (8, 3, 'Варшава');
INSERT INTO `gorod` VALUES (9, 1, 'Тараз');
INSERT INTO `gorod` VALUES (22, 1, 'Рудный');
INSERT INTO `gorod` VALUES (21, 2, 'Санкт-Петербург');
INSERT INTO `gorod` VALUES (20, 2, 'Москва');
INSERT INTO `gorod` VALUES (23, 1, 'Костанай');
       
Спустя 1 минуту 40 секунд добавил
Кодировка 1251, когда менял на utf-8 всё то же самое, без изменений,т.е. undefined  в опшенах.
Записан
rider-sx    ↓ 
18 Ноябрь, 2010, 01:37:11 , спустя 18 минут 59 секунд
НЕ ХУЕТА! ХУЕТА!

drmmmmmm
Группа: Адекваты

Карма: 32
Сообщений: 2718
Сила слова: 1.18

Хз, но такое чувство что падла в жс засела :)
Записан

phpdude    ↓ 
18 Ноябрь, 2010, 01:43:02 , спустя 5 минут 51 секунду
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20790
Сила слова: 1.65

$(result.regions).each(function() {
                        options += '<option value="' + $(this).attr('id') + '">' + $(this).attr('title') + '</option>';
                    });
у вас не дом объект, жукери мозг выносит новикам по полной =))
 
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Lion_astana    ↓ 
18 Ноябрь, 2010, 01:50:45 , спустя 7 минут 43 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

у вас не дом объект, жукери мозг выносит новикам по полной =))
Но должен же быть вариант какой-то, как считаете?Ведь раз он из текстовых файлов нормально всё тянет, то из базы тоже должен быть вариант.
Дааааааа, тут без пузыря не разберёшься.....
Записан
phpdude    ↓ 
18 Ноябрь, 2010, 02:13:36 , спустя 22 минуты 51 секунду
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.65

Javascript
for(var i=0;i<result.regions.length;i++) {
                        options += '<option value="' + result.regions[i].id + '">' + result.regions[i].title + '</option>';
                    });
так попробуй
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Lion_astana    ↓ 
18 Ноябрь, 2010, 02:26:18 , спустя 12 минут 42 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

Зависимый селект теперь вообще не работает....
Спустя 49 секунд добавил
Правильно вставил Ваш код?:
Java
$(document).ready(function () {
    $('#country_id').change(function () {
        var country_id = $(this).val();
        if (country_id == '0') {
            $('#region_id').html('');
            $('#region_id').attr('disabled', true);
            return(false);
        }
        $('#region_id').attr('disabled', true);
        $('#region_id').html('<option>загрузка...</option>');
       
        var url = 'get_regions.php';
       
        $.get(
            url,
            "country_id=" + country_id,
            function (result) {
                if (result.type == 'error') {
                    alert('error');
                    return(false);
                }
                else {
                    var options = '';
                    for(var i=0;i<result.regions.length;i++) {
                        options += '<option value="' + result.regions[i].id + '">' + result.regions[i].title + '</option>';
                    });
                   
                    $('#region_id').html(options);
                    $('#region_id').attr('disabled', false);
                }
            },
            "json"
        );
    });
});
 
Записан
Lion_astana    ↓ 
18 Ноябрь, 2010, 05:42:00 , спустя 3 часа 15 минут 42 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

Этот код сведёт меня с ума, кто-нибудь может помочь?
Записан
LIFF    ↓ 
18 Ноябрь, 2010, 08:34:26 , спустя 2 часа 52 минуты 26 секунд
НЕ ХУЕТА! ХУЕТА!
Группа: Адекваты

Карма: 3
Сообщений: 177
Сила слова: 1.69

Lion_astana, покажи что в result приходит
Спустя 49 секунд добавил
в фаербаге можешь посмотреть
Записан
Stasovsky    ↓ 
19 Ноябрь, 2010, 01:08:54 , спустя 4 часа 34 минуты 28 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3653
Сила слова: 1.48

скоро должен появиться Дуд с заманчивым предложением в 200 баксов))
Записан
Страниц: [1] 2 3
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, Sinkler