HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

поМогите с AJAxом!
  #1  
Старый 03.10.2009, 23:14
kdk
Участник форума
Регистрация: 08.11.2006
Сообщений: 113
С нами: 10265442

Репутация: 3
По умолчанию поМогите с AJAxом!

У меня такой вопрос как организовать такое же
на примере http://www.lasso.pro/selectCombo/
Есть 2 бд
1)CREATE TABLE `strani` (
`id` varchar(20) NOT NULL,
`strana` varchar(25) default NULL
) ;
INSERT INTO `strani` VALUES ('1', 'Россия (Russia)');
INSERT INTO `strani` VALUES ('2', 'Украина (Ukraine)');
2)CREATE TABLE `gorod` (
`id` varchar(20) NOT NULL,
`id_strana` varchar(20) NOT NULL,
`gorod` varchar(25) default NULL
) ;

http://www.lasso.pro/selectCombo/ сделано было при помощи jquery.selectCombo1.2.6.js ну я не могу разобраться как это перевести на php! Или вообще как вы это решали на своем сайте?
 
Ответить с цитированием

  #2  
Старый 03.10.2009, 23:43
KaMiKadZe
Участник форума
Регистрация: 24.02.2006
Сообщений: 206
С нами: 10635912

Репутация: 103
По умолчанию

При выборе одного из списка определяем какой выбрали (говорю определяем так как не знаю можно ли определить сразу не перебирая все элементы списка какой наш) после определения посылаем ajax запросом скрипту номер списка это будет одновременно и id в базе SELECT * FROM `gorod` WHERE id_strana='$id'; после работы скрипта все возвращается и работает уже с возвращенными значениями создавая 2 список
Вот весь алгоритм работы
 
Ответить с цитированием

  #3  
Старый 04.10.2009, 00:40
diGriz
Участник форума
Регистрация: 11.10.2006
Сообщений: 134
С нами: 10305836

Репутация: 235
По умолчанию

С jQuery примерно так. Выбираешь страны из бд, заносишь в массив $countryArr, потом выводишь в списке. При событии onChange() получаем Id страны и вытаскиваем города.
PHP код:
<html>
    <head>
        <title></title>
         <script src='../js/jquery.js' type='text/javascript'></script>
         <script type="text/javascript">
            $(document).ready(function(){
                   showCountriesById($('#countryId').val());
             });
            function showCountriesById (val) {
            $.ajax({
            type: "POST",
            url: "ajax.php",
            data: "countryId="+val,
            success: function(html){
                $("#cityContainer").html(html);
            }
        });
        }
        </script>
    </head>
    <body>
      <select name="countryId" id="countryId" onchange="showCountriesById(this.value)">
                <?php
                
//Выводишь страны
                
if (isset( $countryArr)) 
                {
                
?>
                    <?php
                    
foreach ( $countryArr as $s) {
                    
?>
                        <option value="<?=$s['id']?>"><?=$s['strana']?></option>
                    <?php
                    
}
                    
?>
                <?php
                
}
                
?>
                </select>
                    <div id="cityContainer">    </div>    
    </body>
</html>
Файл ajax.php
PHP код:
<?php
$countryId 
$_POST['countryId'];
//Выбираешь из бд города и заносишь в массив
$html .= '<select name="cities">';
while (
$row mysql_fetch_array($res)) {
    
$html    .= '<option value="'.$row['id'].'" >'.$row['gorod']'.</option>';
}
echo 
$html;
?>

Последний раз редактировалось diGriz; 04.10.2009 в 00:48..
 
Ответить с цитированием

  #4  
Старый 04.10.2009, 01:19
K0rINf
Новичок
Регистрация: 20.01.2009
Сообщений: 27
С нами: 9108861

Репутация: 7
По умолчанию

мой вариант без Jqeury ! работает в ОПЕРЕ 100% в других не тестил.
содержимое файла 1.php
PHP код:
<script>
function AjaxFunc ()
{
x = document.getElementById("select");//выбераем наш селект
x_send = x.selectedIndex; //Теперь x_send это то значение которое выбрали

//тут создаю обьект 
if(window.XMLHttpRequest){
                            ajax1 = new XMLHttpRequest();
                            }
 else 
         if(window.ActiveXObject)
            {
                ajax1 = new ActiveXObject("Microsoft.XMLHTTP");
            } 
 else {
    return;
      };

ajax1.open("GET","ajax.php?select="+x_send, true);//делаю опен. Селект передаю через сылку
ajax1.send(null);// так вроде надо)) 
ajax1.onreadystatechange = function()// тут обрабатываю то что пришло
                        {
                        if (ajax1.readyState == 4 && ajax1.status == 200) 
                                 {
                        a = document.getElementById("div");
                        a.innerHTML = ajax1.responseText;  
                                };       
                        }
};                    
</script>


<select name="Strana"  onchange='AjaxFunc()' id="select" >
<?php 
// тут должна быть функция mysql_pconnect 
 
mysql_select_db("Magaz");// в моем случае база называлась МАГАЗ 
 
$sql "SELECT * FROM strani";// выбераю все страны
 
$sql_result mysql_query($sql);
 
$sql_arr mysql_fetch_array($sql_result);
do {
          echo (
"<option id='".$sql_arr['id']."'>".$sql_arr['strana']."
</option>"
);// выводим список всех стран в селекте
     
}
 while (
$sql_arr mysql_fetch_array($sql_result))
?>

</select>
<form id="div">
//сюда мы поместим наш ответ с городами
</form>
Содержимое файла ajax.php
PHP код:
<?php
// тут также должна быть функция mysql_connect
mysql_select_db("Magaz");// опять подключаемся к базе
$sql "SELECT * FROM gorod WHERE id_strana = ".$_GET['select'];// в $_GET['select'] у нас содержиться // код страны которую выбрал  пользователь. Выбираю все где код страны равен $_GET['select']
$sql_result mysql_query($sql);
$sql_fetch_array mysql_fetch_array($sql_result);
//формирую ответ
echo ("<select name='gorod'>"); 
do {
echo (
"
<option>"
.$sql_fetch_array['gorod']."</option>");
}
while (
$sql_fetch_array mysql_fetch_array($sql_result));
echo (
'</select>');

?>
Сделал очень быстро! может гденить работать не будет! надо проверить еще на иньекции.
И еще чтоб меньше было гемора поменял Id стран на 0 и 1.

Последний раз редактировалось K0rINf; 04.10.2009 в 02:26..
 
Ответить с цитированием

  #5  
Старый 06.10.2009, 09:57
kdk
Участник форума
Регистрация: 08.11.2006
Сообщений: 113
С нами: 10265442

Репутация: 3
По умолчанию

СПС
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.