За последние 24 часа нас посетили 98979 программистов и 5774 робота. Сейчас ищет 2541 программист ...

php+select+ajax

Тема в разделе "PHP для новичков", создана пользователем v.senkevich, 17 мар 2016.

  1. v.senkevich

    v.senkevich Guest

    Здравствуйте
    Есть два select, в первый загружает из mysql. Выбираю в первом должно загрузить во второй из mysql, но не загружает.
    index.php
    Код (PHP):
    1. <script src="jquery-1.12.1.min.js"></script>
    2. <script>
    3. $(document).ready(function()
    4. {
    5.     $('#city').change(function()
    6.     {
    7.         var code = $(this).val();
    8.         var data = 'code='+code;
    9.         alert(data);
    10.         $.ajax({
    11.             type : "POST",
    12.             url : "street.php",
    13.             data : data,
    14.             cache : false,
    15.             success : function(html)
    16.             {
    17.                 $('#street').html(html);
    18.             }
    19.            
    20.         });
    21.     });
    22.    
    23. });
    24.  
    25.  
    26.  
    27.  
    28. </script>
    29.  
    30. <form method='post' >
    31. <select name="city" id="city">
    32. <?php
    33. include "conn.php";
    34. $query = 'SELECT DISTINCT(gorod) FROM controll';
    35. $result = mysql_query($query) or die('sql_query_aborted: ' . mysql_error());
    36. while($object = mysql_fetch_object($result)){
    37.  
    38. echo "<option value = '$object->gorod' > $object->gorod </option>";
    39.  
    40. }  
    41. ?>
    42. </select>
    43.  
    44. <select name="street" id="street">
    45. <option selected="selected">AAAAAAAAA</option>
    46. </select>
    47. </form>
    street.php
    Код (PHP):
    1. <?php
    2. include 'conn.php';
    3. echo $_POST['code'];
    4. if(isset($_POST['code']))  
    5. {
    6.     $query = "select DISTINCT(adress) from controll where gorod='".$_POST['code']."'";
    7.     $result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());
    8.    
    9.     while($object = mysql_fetch_object($result)){
    10.  
    11.      echo "<option value = '$object->adress' > $object->adress </option>";
    12.     }
    13.  
    14. }  
    15. ?>
    conn.php
    Код (PHP):
    1. <?php
    2. $link = mysql_connect('localhost', 'root', '')
    3. or die('Не удалось соединиться: ' . mysql_error());
    4. mysql_set_charset('cp1251',$link);
    5. mysql_select_db('controll') or die('Не удалось выбрать базу данных');
    6. ?>
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    посмотри вообще уходит ли запрос яксовый и что получает в ответ
     
  3. v.senkevich

    v.senkevich Guest

    по логам пусто, запрос на сервер уходит, в ответ пусто
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    у тебя скрипт вернет пустоту если ничего не найдено — видимо так и происходит.

    выводи в лог или в "ошибочный ответ" что за параметры приняты и разбирайся с этим.
     
  5. v.senkevich

    v.senkevich Guest

    если даже если из street.php убрать mysql

    Код (PHP):
    1. <?php
    2. if(isset($_POST['code']))
    3. {
    4.     echo "<option value = BBBBBBBBBBBB > BBBBBBBBBBBB </option>";
    5. }
    6.  
    7. ?>
    Все равно во второй select не загружает. Сам блок ajax у меня правильно написан?

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т. д.
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    Слабая попытка. А если $_POST['code'] не задан/пустой/нулевой?

    Добавлено спустя 1 минуту 25 секунд:
    да делать мне нечего, как всё проверять ))) смотри консоль браузера (chrome: Ctrl+Shift+J) нет ли там ошибок. ставь брейкпоинты и отлаживайся.

    на форуме принято подсказывать путь, учить искать ошибки, а не делать за кого-то всю работу.
     
  7. Andrey_mdev

    Andrey_mdev Новичок

    С нами с:
    11 мар 2016
    Сообщения:
    24
    Симпатии:
    0
    Что бы проверить что клиент что то получает напиши просто
    Код (PHP):
    1. ...
    2.  success : function(html)
    3.             {
    4.                 alert(html);
    5.             }
    6. ...
    7.  
    что бы проверить что php скрипт запускается и отрабатывает напиши:
    Код (PHP):
    1. <?php  echo "server ok!"; ?>
    Сначала добейся того, что бы эта связка работала, а потом добавляй уже свою бизнес логику.

    Есть подозрение что у вас путь к скрипту прописан неверно. url : "street.php", У вас .php и .js лежат в одной папке?

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т. д.
     
  8. v.senkevich

    v.senkevich Guest

    с ajax разобрался все передает.

    При загрузке из mysql в select, выдает ошибку

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '�аган с' at line 1

    Проверял сам текст запроса подгружает нормально в select

    select DISTINCT(adress) from controll where gorod=Баган с

    не могу понять, что за трабла с кодировками, сама база в mysql на utf8
     
  9. Andrey_mdev

    Andrey_mdev Новичок

    С нами с:
    11 мар 2016
    Сообщения:
    24
    Симпатии:
    0
    Баган с замените на 'Баган с'
     
  10. v.senkevich

    v.senkevich Guest

    добавил в запросе кавычки , теперь ничего не грузит, даже ошибку. убираю кавычки, попадаю в блок if($result==NULL), и грузит ошибку и текст запроса
    вот мой street.php

    Код (PHP):
    1. <?php
    2. include 'conn.php';
    3.  
    4. if(isset($_POST['city'])==true)
    5. {
    6.     $id=$_POST['city'];
    7.     $query = "select DISTINCT(adress) from controll where gorod='".$id."'"; 
    8.     $result = mysql_query($query);
    9.     $res = mysql_error($link);
    10.     
    11.     if($result==NULL)
    12.     {
    13.         echo "<option>$res</option>";
    14.         echo "<option value = '$query' >$query</option>";
    15.     }
    16.     else
    17.     {
    18.     while($object = mysql_fetch_object($result)){
    19.  
    20.           echo "<option value = '$object->adress' > $object->adress </option>";
    21.      
    22.     }
    23.     }
    24.    
    25.         
    26. } 
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т. д.
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    слов уже нет… что написал то и получил. не понимаешь нифига, так загляни в справку по функции чтоли, там масса примеров, всякие случаи рассмотрены в комментариях.
    если блин всё время надеяться на кого-то, так и будешь на жопе сидеть и жаловаться.
     
  12. v.senkevich

    v.senkevich Guest

    в чем твоя проблема?, не хочешь помогать иди лесом
     
  13. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    моя проблема, в том что попытался тебе помочь. всё, <матное слово> конём )))

    Добавлено спустя 1 минуту 16 секунд:
    напиши маленькую программусечку без всякого аякса, которая будет для заранее известного id выводить список адресов или что там у тебя.
    отладь её. по справке выясни какие значения могут возвращать используемые функии, проверяй только на них, а не на отбалды.
    mysql_error() вызывай только при наступлении ошибки.

    усложняй постепенно, делай только то, что понял.
     
  14. v.senkevich

    v.senkevich Guest

    Изначально так и было написано без аякса и все работало. Теперь надо чтоб страница не перегружалась при выборе из select. Щас у меня проблема с кодировками Illegal mix of collations (utf8_general_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation '=' . Решу ее без твоего нытья, в итоге на этом форуме , мне никто и не помог и нах он тогда нужен, тему можно закрывать.
     
  15. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    не ври хотябы себе

    какзалось бы, откуда ей взяться, ведь всё работало!

    попутного ветра! ты ведь пойдешь искать добрых фей в другое место? не обижайся если на другом форуме я тебя процитирую.
     
  16. v.senkevich

    v.senkevich Guest

    тебе код скинуть?

    хороший вопрос, но тем менее.

    дебил, кого искать? с кодировками с разберусь и все.
     
  17. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    Вячеслав, если к 30 годам ты не научился общаться с людьми, то видимо уже не судьба.
    Здесь ты забанен.
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    бабе своей на кухне можешь объяснить куда ей ходить.
     
  19. machetero

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

    С нами с:
    25 окт 2014
    Сообщения:
    489
    Симпатии:
    21
    зачем скидывать, если сюда можно выложить