Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: выпадающий список из кладра
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » выпадающий список из кладра

Страниц (1): [1]
 

1. NAZE - 07 Октября, 2011 - 02:21:19 - перейти к сообщению
Здравствуйте, мне нужно сделать выпадающие списки город->улица->дом, данные берутся из кладра
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $host='localhost';
  3. $database='BASE';
  4. $user='user';
  5. $pswd='12345';
  6. $dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
  7. mysql_select_db($database) or die("Не могу подключиться к базе.");
  8.  
  9. function is_sel($a, $field)
  10. {
  11.   $b = isset($_POST[$field])?$_POST[$field]:NULL;
  12.   if($a == $b) return 'selected="selected"';
  13. }
  14. $res = mysql_query("SELECT * FROM `kladr` WHERE CODE LIKE '1800000%00000'");
  15. ?>
  16. <form id="frm" method="post">
  17. <select name="kladr" onchange="document.getElementById('frm').submit()" >
  18. <option value='null'>- Выберите город -</option>
  19. <?
  20.  
  21.     while($row = mysql_fetch_array($res))
  22.       echo "<option ".is_sel($row['CODE'],'kladr')." value='" . $row['CODE'] . "'>" . $row['NAME'] . "</option>\r\n";
  23. echo "</select>";
  24.  
  25. if(isset($_POST['kladr']))
  26. {
  27.   $res=mysql_query('SELECT * FROM `street` WHERE CODE="'.(int)$_POST['kladr'].'"');
  28.  
  29.   echo "<select name=\"street\" onchange=\" document.getElementById('frm').submit();\" >
  30.    <option  id=\"street\" value='0'>- Выберите улицу -</option>";
  31.  
  32.     while($row = mysql_fetch_array($res))
  33.       echo "<option ".is_sel($row['CODE'],'street')." value='" . $row['CODE'] . "'>" . $row['NAME'] . "</option>\r\n";
  34.  
  35.   echo "</select>";
  36. }
  37.  
  38.  
  39. ?>
сделал вот по этому примеру, но список улиц не появляется, кто уже работал с кладром помогите!!!
2. NAZE - 07 Октября, 2011 - 09:57:09 - перейти к сообщению
если кто-то решится помочь, могу выложить базу с таблицами
3. Andruxa - 07 Октября, 2011 - 12:33:36 - перейти к сообщению
Все это делается с помощью JAX технологии, php здесь только обработчик. Забей в поиск "выпадающие списки на AJAX" или как то так
4. JohnnyB - 07 Октября, 2011 - 12:38:31 - перейти к сообщению
Цитата:
кто уже работал с кладром помогите!!!

Что за кладр? Используй AJAX http://javascript[dot]ru/ajax/intro
5. NAZE - 09 Октября, 2011 - 00:50:44 - перейти к сообщению
вся проблема в том что не знаю ajax, и никогда с ним не работал
6. illy - 09 Октября, 2011 - 08:22:21 - перейти к сообщению
на select ставь onchange() который бует отправлять через аякс название улицы или дома а в ответ получать выпадающий список
7. snikers987 - 09 Октября, 2011 - 14:35:50 - перейти к сообщению
гугл: зависимые списки

первый же результат, поиском нужно пользоваться
8. NAZE - 09 Октября, 2011 - 22:39:20 - перейти к сообщению
может кто-нибудь поможет написать функцию на javascript именно для этого кода, а то не силен я в этом
(Добавление)
структура таблиц
Спойлер (Отобразить)
9. LIME - 09 Октября, 2011 - 22:53:13 - перейти к сообщению

JohnnyB пишет:
Что за кладр?
Классификация адресов России
кошмарно составленная база
даже первой нормальной не соответствует насколько я помню
10. illy - 10 Октября, 2011 - 09:45:47 - перейти к сообщению
Я вот ща клиенту делал тож выпадающее нечто
Выбираешь Страну, подгружаются города этой страны в селект

CODE (html):
скопировать код в буфер обмена
  1. <select name="country_id" onchange="document.getElementById('getse').src='discont.php?id='+this.value;">
  2. <option value="176">Россия</option>
  3. <option value="208">Япония</option>                
  4. <select name="zone_id" id="zone_id"></select>
  5. <iframe id=getse frameborder=0 src='discont.php?id=176' width=0 height=0></iframe>


discont.php

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $k='';
  3. if(!empty($_REQUEST['id'])){
  4. $id=$_REQUEST['id'];
  5. mysql_connect('localhost','root','');
  6. $q=mysql_query("SELECT zone_id,name FROM dic_zone WHERE country_id='$id'");
  7. while($v=mysql_fetch_row($q)){
  8. $k.="<option value=$v[0]>$v[1]</option>";
  9. }
  10. }
  11. if($k!=''){
  12. echo "<script>
  13. parent.document.getElementById('zone_id').innerHTML='$k';
  14. </script>";
  15. }
  16. ?>

 

Powered by ExBB FM 1.0 RC1