ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 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
KaMiKadZe
Участник форума
Регистрация: 24.02.2006
Сообщений: 206
Провел на форуме:
2735257

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

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

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

Репутация: 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
K0rINf
Новичок
Регистрация: 20.01.2009
Сообщений: 27
Провел на форуме:
47153

Репутация: 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
kdk
Участник форума
Регистрация: 08.11.2006
Сообщений: 113
Провел на форуме:
184002

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

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Народ!!! Помогите НАМ!!! Помогите покончить с беспределом!!! Monah Чаты 7 24.08.2005 07:06



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


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




ANTICHAT.XYZ