За последние 24 часа нас посетили 17249 программистов и 1626 роботов. Сейчас ищет 1521 программист ...

Взаимодействие PHP + JS

Тема в разделе "PHP для новичков", создана пользователем Hot, 13 авг 2008.

  1. Hot

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

    С нами с:
    11 июн 2008
    Сообщения:
    6
    Симпатии:
    0
    У меня вот такая ситуация. Нужно считать с таблицы в БД, список стран и сформировать выпадающий список. После выбора страны, считать с другой БД инф. и сформировать выпадающий список городов, этой страны. Всё это должно быть без перезагрузки страницы. Помогите пожалуйста :) В JavaScript не силён. Вот немного на php набросал, но после формирования первого выпадающего списка - бред пошел.

    PHP:
    1. <?php
    2.     include("connect_to_db.php");
    3.  
    4.     $get_country = "SELECT * FROM countries ";
    5.     $get_country = mysql_query($get_country) or die (mysql_error());
    6.    
    7.     echo "Country: <select   name='country' onchange='showSelect()'>";
    8.    
    9.     while($country = mysql_fetch_array($get_country, MYSQL_ASSOC))
    10.     {
    11.            
    12.         echo" <option value='".$value = $country['name']."'> ".$country['name']."";
    13.        
    14.          
    15.          
    16.     }
    17.         echo " </select>
    18.                 <br> <br>";
    19.                
    20.     //максимальный элемент, который будет равен количеству выпадающих списков.
    21.     $max_id = "select max(country_id) from cities";
    22.     $max_id = mysql_query($max_id) or die (mysql_error());
    23.    
    24.     for ($a = 0; $a < $max_id; $a++) {
    25.  
    26.     //запрос и формирование списков
    27.         $get_city = "SELECT * FROM cities WHERE country_id = '".$a."'";
    28.         $get_city = mysql_query($get_city) or die (mysql_error());
    29.    
    30.         echo "<div style='visibility: hidden' City: <select  type= 'hidden' name='city'>";
    31.        
    32.         while($city = mysql_fetch_array($get_city, MYSQL_ASSOC))
    33.         {
    34.            
    35.             echo" <option value='".$value = $city['name']."'> ".$city['name']."";
    36.        
    37.         }
    38.         echo " </select>
    39.                 </div>
    40.                 <br> <br>";
    41.  
    42.     }
    43.  
    44.    
    45.    
    46. ?> 
    47.  
    48. <!-- Создание нового объекта XMLHttpRequest-->
    49. <script language="javascript" type="text/javascript">
    50.  
    51. <!--
    52. function showSelect()
    53. {
    54.  
    55. var result = new_record_form.country.value;
    56.  
    57. alert(max_id)
    58. }
    59.  
    60.  
    61. //-->
    62. </script>
     
  2. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
  3. Hot

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

    С нами с:
    11 июн 2008
    Сообщения:
    6
    Симпатии:
    0
    тогда меня интересует, как можно обмениваться данными между переменными php & js. Поскольку считывать прийдёться php и заносить инфорацию в масив, а потом как то передать данные в массив js, если я не ошибаюсь.
     
  4. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Hot
    У меня это реализовано на jQuery
    [js]
    $("#div-id").load("ajax.php", { name: formname.fieldname.value });
    [/js]

    В ajax.php получаю $_POST ['name'] и всё.
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Elkaz
    С одной стороны готовые библиотеки и фреймворки - хорошо. Готовый комбайн под все задачи, экономит много времени и сил. А с другой? Человек с самого начала программирования приучается к готовому чужому коду (просто тупому его использованию) и думает, что это вполне нормально! На самом деле беда, когда люди приходят на работу, показывают проекты, рассказывают, что они на цмс с такими-то фреймворками и библиотеками, а когда просишь написать простейшую функцию - он заступоривается.

    P.S. Я считаю, что использовать библиотеки для простой странички - лишнее, гораздо проще самому организовать правельный AJAX. Тогда и опыт будет.
     
  6. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Зачем PHP программисту знать тонкости работы с Java Script?
     
  7. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Давайте начнем изучать команды процессора!
    Как же мы програмируем, когда основ не знаем?!
    ИМХО!

    P.S. Можно конечно для простых вещей написать все самому... а потом усложнится код и все равно проще будет использовать грамотный фреймворк - итого получается лажа:
    1. два куска кода которые дублируют друг друга (своя функция и фреймворк)
    или
    2. Заменять свой код, написанный ранее, на функцию фреймворка!
     
  8. Amian

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

    С нами с:
    15 мар 2007
    Сообщения:
    189
    Симпатии:
    0
    JSON
     
  9. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Я в js слабо разбираюсь и как бы не тянет меня этот язык... Но по своей работе мне часто приходится работать с js, потому что требуют от меня. Зачем мне разбирать язык, если я лишь хочу получить от него конкретный результат. Код уже написан за меня профессиональным программистами моя задача лишь правильно использовать API их фреймворка. Меня лично jquery очень нравится и удовлетворяет моим требованиям. Другое дело вообще не знать никаких языков и пользоваться постоянно чужим кодом и редактировать его... Это уже кодер :)
     
  10. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Чет какая то несостыковка...
    На мой взгляд это просто юзер!
     
  11. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    S.t.A.M.
    Ну, ты понял о чем я :)
    Это когда знаешь немного РНР, немного HTML, немного JS/XML/MySQL, знаешь API Joomla, Bitrix и других CMS, но свое написать не можешь :)
     
  12. kostyl

    kostyl Guest

    Kreker
    Так как можно загружать ассинхронно без примочек данные в страницу, сформированные скриптом на PHP?