Проблемы с аяксом

Nicca

Новичок
Проблемы с аяксом

Создаю связанные селекты. При ввыборе из одного елемента обрабатывается так выбор:
PHP:
 onchange='xajax_getList2(this.options[this.selectedIndex].value, "country")'
функция getList2
PHP:
function getList2($region, $flag)
{
   if($flag=='country')
    {
	$text = "<option value='0'>-Выберите регион-</option>";
	$sql="select * from regions where parent_country=$region and parent_region=0";				
	$res=mysql_query($sql);
................................................
Ругается на sql-запрос :
Error: The XML-Response that was returned from the server is invalid. Received:
select * from regions where parent_country=1 and parent_region=0
Выпаолняю этот запрос через пхпмайадмин - все норм. Выборку делает. Почему тогда ругается на запрос?
 

kruglov

Новичок
Это не с аяксом проблемы, а с пониманием работы php.

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

Nicca

Новичок
Почему непонимание? Вот текст всей функции:
PHP:
function getList2($region, $flag)
{
   if($flag=='country')
    {
       $text = "<option value='0'>-Выберите регион-</option>";
       $sql="select * from regions where parent_country=$region and parent_region=0";				
       $res=mysql_query($sql);
       while ($row = mysql_fetch_array($res)) 
        {
	$text .= "<option value='".$row['id']."'>".$row['country']."</option>";
        }
       $text = "<select name='region' class=\"inputtext\" onchange='xajax_getList2(this.options[this.selectedIndex].value, \"city\")'>$text</select>";
       $objResponse = new xajaxResponse();
       $objResponse->setCharEncoding('windows-1251');
       $objResponse->addAssign("div2", "innerHTML", $text);
        return $objResponse;
}
 

kruglov

Новичок
Ну вы согласны, что в тексте, который выдает этот скрипт, никак не должно быть слов "select * from...", т.к. эта "требуха" должна оставаться на сервере? И таких страшных слов ajax просто не может узнать? А он узнаёт.
 

Nicca

Новичок
А где у меня тексту передается select * from ?
Или я как-то неправильно обрабатываю запрос sql ?
 

fixxxer

К.О.
Партнер клуба
ну блин, а без аякса что, не пробовал сначала?
 

Nicca

Новичок
на аяксе удобнее. Данные у меня все в базе. Их легко обновлять..
 

kruglov

Новичок
А где у меня тексту передается select * from ?
А что в аяксовской ошибке написано??

-~{}~ 23.09.08 13:59:

на аяксе удобнее. Данные у меня все в базе. Их легко обновлять..
Для отладки запросить не через аякс, а напрямую, чтоб все глазами видеть, а не аяксом.
 

Nicca

Новичок
Так в $objResponse я отдаю переменную $text.
Почему отдается $sql? Что-то я ничего не понимаю..

-~{}~ 23.09.08 14:03:

Подскажите как в моем примере нужно сделать правильно.
 

kruglov

Новичок
И я не понимаю. Ваш код вообще ничего в браузер выдавать не должен, там только функция задается.

Вы бы упростили свой рабочий примерчик строчек до 10.
 

Nicca

Новичок
Функция описанная мной в примере должна по выбраному параметру $region сделать запрос в базу и выбрать подчиненные данные с полем в которм есть этот $region:
$sql="select * from regions where parent_country=$region and parent_region=0";
Потом результат выборки я формирую в селект(переменная $text)
И отдаю эту переменную:
PHP:
 $objResponse = new xajaxResponse(); 
       $objResponse->setCharEncoding('windows-1251'); 
       $objResponse->addAssign("div2", "innerHTML", $text); 
        return $objResponse;
В шаблоне:
PHP:
<div id="div2"></div>
В этот "контейнер" дожен вставиться селект, сформированный в функции getList2

-~{}~ 23.09.08 14:52:

Все извините за такой "навис". Разобрался.
Напутал с базами, подключался совсем к другой бд.
 
Сверху