Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> страна регион город 
:(
    Опции темы
MeIsGremlin
  Дата 30.8.2007, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



как сделать три селекта 

Страна Регион Город 

как на сайтах знакомств типа mamba?

Может есть какой-то модуль бесплатный? smile 
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
svip
Дата 30.8.2007, 15:29 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 27.3.2007

Репутация: нет
Всего: нет



нужна беза данных по странам регионам и городам. если есть используй ajax
вот класс
Код

<?php
class KA{
 var $LOADER = '';
 var $debug_mode = 0;
 var $export_list = array();
 var $request_type = "POST";
 var $ka_js_has_been_shown = 0;
 var $js_error='';
 var $timeout=15;
 var $header="Content-type: text/html; charset=UTF-8\n\n";
 var $CACHE=0;
 var $load_func_before="";
 var $load_func_after="";
 var $load_func_before_arg=null;
 var $load_func_after_arg=null;

 function KA(){
 }

 function VERSION(){
  return '1.4';
 }

 function ka_get_my_uri(){
  $tt="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  return $tt;
 }

 function ka_php2js($a){
  if(is_null($a)) return 'null';
  if($a === false) return 'false';
  if($a === true) return 'true';
  if(is_scalar($a)){
   $a = addslashes($a);
//   $a = str_replace("'", '\\\'', $a);
   $a = str_replace("\n", '\n', $a);
   $a = str_replace("\r", '\r', $a);
   return "'$a'";
  };
  $isList = true;
  for ($i=0, reset($a); $i<count($a); $i++, next($a))
   if (key($a) !== $i) { $isList = false; break; }
  $result = array();
  if ($isList) {
   foreach ($a as $v) $result[] = KA::_php2js($v);
   return '[ ' . join(',', $result) . ' ]';
  }else{
   foreach ($a as $k=>$v) $result[] = KA::_php2js($k) . ': ' . KA::_php2js($v);
   return '{ ' . join(',', $result) . ' }';
  };
 }

 function ka_get_one_stub($func_name){
  $html="function x_$func_name(){ka_do_call(\"$func_name\",x_$func_name.arguments);};";
  return $html;
 }

 function ka_show_one_stub($func_name){
  echo $this->ka_get_one_stub($func_name);
 }

 function export(){
  $n = func_num_args();
  for($i = 0; $i < $n; $i++){
   $this->export_list[] = func_get_arg($i);
  };
 }

 function get_javascript(){
  $html = "";
  if(! $this->ka_js_has_been_shown){
   $html .= $this->ka_get_common_js();
   $this->ka_js_has_been_shown = 1;
  };
  foreach ($this->export_list as $func) {
   $html .= $this->ka_get_one_stub($func);
  };
  return $html;
 }

 function show_javascript(){
  echo $this->get_javascript();
 }

 function init() {
  $mode = "";
  if (!empty($_GET["rs"]))
   $mode = "get";
  if (!empty($_POST["rs"]))
   $mode = "post";
  if (empty($mode)) return;
  if ($mode == "get"){
   $this->request_type="GET";
   // Bust cache in the head
   header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Date in the past
   header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
   // always modified
   header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
   header ("Pragma: no-cache");                          // HTTP/1.0
   if(!empty($_GET["rback"])){
    $rback=$_GET["rback"];
   };
   $func_name = $_GET["rs"];
   if (! empty($_GET["rsargs"]))
    $args = $_GET["rsargs"];
   else
    $args = array();
  }else {
   $this->request_type="POST";
   $func_name = $_POST["rs"];
   if (! empty($_POST["rsargs"]))
    $args = $_POST["rsargs"];
   else
    $args = array();
  };
  if(is_array($args)){
   for($i=0;$i<count($args);$i++){
    $args[$i]=stripslashes($args[$i]);
   };
  }else{$args=stripslashes($args);};
  Header($this->header);
  if (! in_array($func_name, $this->export_list)){
   if(!empty($rback)){
    $this->LOADER='SCRIPT';
    echo "clearTimeout(ka_timeout);".$rback."('\\'$func_name\\' not callable');";
   }else{
    $this->LOADER='XML';
    echo "'$func_name' not callable";
   };
  }else{
   if(empty($rback)){$this->LOADER='XML';}else{$this->LOADER='SCRIPT';};
   $result='';
   ob_start();
   if(!empty($this->load_func_before))$result.= call_user_func_array($this->load_func_before,$this->load_func_before_arg);
   $result.= call_user_func_array($func_name, $args);
   if(!empty($this->load_func_after))$result.= call_user_func_array($this->load_func_after,$this->load_func_after_arg);
   $text = ob_get_contents();
   ob_end_clean();
   if($result==''){$result=$text;};
   if(!empty($rback)){
    $result="clearTimeout(ka_timeout);".$rback."(".$this->ka_php2js($result).");";
   };
   echo $result;
  };
  exit;
 }

 function JScopy2id($data,$id){
  echo "ka_rexp1 = /(\\<scri\\pt[^>]*?>[^<]*(?:(?!<\\/scri\\pt>)<[^<]*)*<\\/scri\\pt>)/gi;";
  echo "ka_rexp2=/(\\<scri\\pt[^>]*?>|<\\/scri\\pt>)/gi;";
  echo "ka_split=".$data.".split(\"<\\/s\"+\"cript>\");";
  echo "document.getElementById('".$id."').innerHTML='';";
  echo "for(ka_j=0;ka_j<ka_split.length;ka_j++){";
  echo "if(ka_split[ka_j].search(/\\<scri\\pt[^>]*?>/i)!=-1){";
  echo "ka_split[ka_j]+='<\\/s'+'cript>';";
  echo "ka_found=ka_split[ka_j].match(ka_rexp1);";
  echo "document.getElementById('".$id."').innerHTML+=ka_split[ka_j].replace(/\\<scri\\pt[^>]*?>.*?<\\/scri\\pt>/gi,' ');";
  echo "for(ka_i=0;ka_i<ka_found.length;ka_i++){";
  echo "ka_fou=ka_found[ka_i].replace(ka_rexp2,'');";
  echo "ka_script=document.createElement('script');";
  echo "document.getElementById('".$id."').appendChild(ka_script).text=ka_fou;";
//  echo "if(ka_script.text!=ka_fou){eval(ka_fou);};";
  echo "};";
  echo "}else{document.getElementById('".$id."').innerHTML+=ka_split[ka_j];};";
  echo "};";
 }

 function ka_get_common_js() {
  $ka_remote_uri= $this->ka_get_my_uri();
  $t = strtoupper($this->request_type);
  if($t != "GET" && $t != "POST"){$t="POST";};
  ob_start();
  ?>
var ka_debug_mode = <?php echo $this->debug_mode ? "true" : "false"; ?>;
var ka_request_type = "<?php echo $t; ?>";
var ka_timeout='';
var ka_cache=<?php echo $this->CACHE;?>;
var ka_cache_list;
function ka_debug(text){
 if (ka_debug_mode)alert("MSG: " + text);
};
function ka_init_object() {
 ka_debug("ka_init_object() called..");
 var A=null;
 try{
  A=new ActiveXObject("Msxml2.XMLHTTP");
 }catch(e){
  try{
   A=new ActiveXObject("Microsoft.XMLHTTP");
  }catch(oc){
   A=null;
  };
 };
 if(!A)ka_debug("Could not create connection object.");
 return A;
};

function ka_error_status(type){
 if(type=='SCRIPT'){
  clearTimeout(ka_timeout);
  span=document.getElementById("ko_script");
  span.innerHTML='';
 }else{x=null;};
<?php echo $this->js_error;?>
};

function save_cache(url,post_data,data){
 if(ka_cache!=0){
  if(post_data!=null){url+=post_data;};
  if(ka_cache_list.length<ka_cache){
  }else{

  };
  alert(ka_cache_list[0]);
 };
};

function load_cache(url,func){
 return false;
};

function ka_do_call(func_name, args){
 var i, x, n;
 var uri;
 var post_data;
 uri = "<?php echo $ka_remote_uri; ?>";
 if(ka_request_type == "GET"){
  if(uri.indexOf("?") == -1)uri=uri + '?rs=' + escape(func_name);
  else uri=uri + "&rs=" + escape(func_name);
  for(i = 0; i < args.length-1; i++) uri = uri + '&rsargs[]=' + escape(args[i]).replace(/\+/g,'%2B');
  uri = uri + '&rsrnd=' + new Date().getTime();
  post_data = null;
 }else{
  post_data = 'rs=' + escape(func_name);
  for(i = 0; i < args.length-1; i++)post_data = post_data + '&rsargs[]=' + escape(args[i]).replace(/\+/g,'%2B');
 };
 if(load_cache(uri,args[args.length-1])){return;};
 x = ka_init_object();
 if(x){
  x.open(ka_request_type, unescape(uri), true);
  if(ka_request_type == "POST"){
   x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
   x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  };
  x.onreadystatechange = function(){
   clearTimeout(ka_timeout);
   if((x.readyState != 4)||(x.status != 200))return;
   ka_debug("received " + x.responseText);
   var data = x.responseText;
   data=data.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/<script/g,"<script defer=true");
   save_cache(uri,post_data,data);
   eval(args[args.length-1]+"('"+data+"')");
   x=null;
  };
  x.send(post_data);
  if(!ka_timeout)ka_timeout=setTimeout(function(){x=null;ka_error_status('XML');},<?php echo $this->timeout;?>000);
 }else{
  uri = "<?php echo $ka_remote_uri; ?>";
  if(uri.indexOf("?") == -1)uri=uri + '?rs=' + escape(func_name)+"&rback="+escape(args[args.length-1]);
  else uri=uri + "&rs=" + escape(func_name)+"&rback="+escape(args[args.length-1]);
  for(i = 0; i < args.length-1; i++) uri = uri + '&rsargs[]=' + escape(args[i]).replace(/\+/g,'%2B');
  uri = uri + '&rsrnd=' + new Date().getTime();
  post_data = null;
  ka_request_type="GET";
  if(!ka_timeout)ka_timeout=setTimeout(function(){ka_error_status('SCRIPT');},<?php echo $this->timeout;?>000);
  var span = null;
  span=document.getElementById("ko_script");
  if(!span){
   span=document.createElement("SPAN");
   span.style.display = 'none';
   span.id='ko_script';
   document.getElementsByTagName("body")[0].appendChild(span);
  };
  span.innerHTML='<s'+'cript defer=true></s'+'cript>';
  var s = span.getElementsByTagName("script")[0];
  if(!s){span.innerHTML='';span.appendChild(document.createElement('script'));s = span.getElementsByTagName("script")[0];};
  ka_debug("Create Script element..."+s);
  s.language = "JavaScript";
  s.defer=true;
  ka_debug("Load script data...");
  if (s.setAttribute) s.setAttribute('src', uri); else s.src = uri;
 };
 ka_debug(func_name + " uri = " + uri + "\n post = " + post_data);
 ka_debug(func_name + " waiting..");

};
<?php
  $html = ob_get_contents();
  $html=str_replace("\r","",$html);
  $html=str_replace("\n","",$html);
  ob_end_clean();
  return $html;
 }


};
?>



Пример использования в прикрепленном файле. С помощью этого класса можно делать очень многое без перезагрузки странички а не только селекты.
 

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  index.php 2,99 Kb
PM MAIL WWW ICQ   Вверх
MeIsGremlin
  Дата 30.8.2007, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



то что утут написано я скачал но запустить так и не получилось. Кстати, кажется пропустил тэг <script>
Ты можешь привести пример именно того что мне надо?
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
svip
Дата 30.8.2007, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 27.3.2007

Репутация: нет
Всего: нет



Код

<?php
 require_once('ajax.lib.php');
 $ajax=new KA();
 $ajax->js_error='alert(type);';
 $ajax->timeout=30;
 $ajax->export("region_php","gorod_php","ok_php");
 $ajax->header="Content-type: text/html; charset=windows-1251";
 $ajax->init();
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
 <TITLE>KA AJAX</TITLE>
</HEAD>
<BODY BGCOLOR="#FFEAD9">

<script language="JavaScript">

<?php
 $ajax->show_javascript();
?>

function region(data){
 document.getElementById("region").innerHTML=data;
};
function gorod(data){
 document.getElementById("gorod").innerHTML=data;
};
function ok(data){
 document.getElementById("ok").innerHTML=data;
};
</script>

<?php

echo"<select name=\"c\" class=\"form\" id=\"sel_c\" onchange=\"x_region_php(document.getElementById('sel_c').value ,'region');\">
  <option value=\"\">-= Страны =-</option>
  <option value=\"1\">Россия</option>
  <option value=\"2\">Украина</option>
  <option value=\"3\">Америка</option>
</select>";

?>

<span id="region"></span>
<span id="gorod"></span>
<span id="ok"></span>

</BODY>
</HTML>

<?php

 function region_php($val)
 {
  //  тут используя $val выбираешь из базы нужные регионы

  echo "<select name=\"r\" class=\"form\" id=\"sel_r\" onchange=\"x_gorod_php(document.getElementById('sel_r').value ,'gorod');\">
         <option value=\"\">-= Регионы =-</option>
         <option value=\"1\">Регион1</option>
         <option value=\"2\">Регион2</option>
         <option value=\"3\">Регион3</option>
       </select>";

 };
 function gorod_php($val)
 {
  //  тут используя $val выбираешь из базы нужные города
  echo "<select name=\"g\" class=\"form\" id=\"sel_g\" onchange=\"x_ok_php(document.getElementById('sel_g').value ,'ok');\">
         <option value=\"\">-= города =-</option>
         <option value=\"1\">город1</option>
         <option value=\"2\">город2</option>
         <option value=\"3\">город3</option>
       </select>";

 };
 
 function ok_php($val)
 {
   echo "Делаешь что нужно дальше!!! :)";
 }

?>



вот пример того что тебе нужно. если я правильно тебя понял. только данные из базы выбери и все.  smile 
PM MAIL WWW ICQ   Вверх
MeIsGremlin
  Дата 31.8.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Вопрос может быть глупый но у меня их два.
1. Где мне взять ajax.lib.php ? Или это тот код в рамке что ты написал в первом своем посту?
2. Где мне взять базу данных с странами, городами и регионами ?

PS: в прикрепленном файле результат. Это из-за того что либа не хватает или базы?

В любом случае то что ты написал в блоке первом я скинул в файл ajax.lib.php только добавил тэги <scpirt> в последней функции. Вроде они там нужны.

Код

<?php
class KA{
    var $LOADER = '';
    var $debug_mode = 0;
    var $export_list = array();
    var $request_type = "POST";
    var $ka_js_has_been_shown = 0;
    var $js_error='';
    var $timeout=15;
    var $header="Content-type: text/html; charset=UTF-8\n\n";
    var $CACHE=0;
    var $load_func_before="";
    var $load_func_after="";
    var $load_func_before_arg=null;
    var $load_func_after_arg=null;

    function KA(){ }
    function VERSION(){
    return '1.4';    
    }
    function ka_get_my_uri(){
    $tt="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    return $tt;
    }

    function ka_php2js($a){
    if(is_null($a)) return 'null';
    if($a === false) return 'false';
    if($a === true) return 'true';
    if(is_scalar($a)){
    $a = addslashes($a);
//   $a = str_replace("'", '\\\'', $a);
    $a = str_replace("\n", '\n', $a);
    $a = str_replace("\r", '\r', $a);
    return "'$a'";
    };
  $isList = true;
  for ($i=0, reset($a); $i<count($a); $i++, next($a))
   if (key($a) !== $i) { $isList = false; break; }
  $result = array();
  if ($isList) {
   foreach ($a as $v) $result[] = KA::_php2js($v);
   return '[ ' . join(',', $result) . ' ]';
  }else{
   foreach ($a as $k=>$v) $result[] = KA::_php2js($k) . ': ' . KA::_php2js($v);
   return '{ ' . join(',', $result) . ' }';
  };
 }
 function ka_get_one_stub($func_name){
  $html="function x_$func_name(){ka_do_call(\"$func_name\",x_$func_name.arguments);};";
  return $html;
 }
 function ka_show_one_stub($func_name){
  echo $this->ka_get_one_stub($func_name);
 }
 function export(){
  $n = func_num_args();
  for($i = 0; $i < $n; $i++){
   $this->export_list[] = func_get_arg($i);
  };
 }
 function get_javascript(){
  $html = "";
  if(! $this->ka_js_has_been_shown){
   $html .= $this->ka_get_common_js();
   $this->ka_js_has_been_shown = 1;
  };
  foreach ($this->export_list as $func) {
   $html .= $this->ka_get_one_stub($func);
  };
  return $html;
 }
 function show_javascript(){
  echo $this->get_javascript();
 }
 function init() {
  $mode = "";
  if (!empty($_GET["rs"]))
   $mode = "get";
  if (!empty($_POST["rs"]))
   $mode = "post";
  if (empty($mode)) return;
  if ($mode == "get"){
   $this->request_type="GET";
   // Bust cache in the head
   header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Date in the past
   header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
   // always modified
   header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
   header ("Pragma: no-cache");                          // HTTP/1.0
   if(!empty($_GET["rback"])){
    $rback=$_GET["rback"];
   };
   $func_name = $_GET["rs"];
   if (! empty($_GET["rsargs"]))
    $args = $_GET["rsargs"];
   else
    $args = array();
  }else {
   $this->request_type="POST";
   $func_name = $_POST["rs"];
   if (! empty($_POST["rsargs"]))
    $args = $_POST["rsargs"];
   else
    $args = array();
  };
  if(is_array($args)){
   for($i=0;$i<count($args);$i++){
    $args[$i]=stripslashes($args[$i]);
   };
  }else{$args=stripslashes($args);};
  Header($this->header);
  if (! in_array($func_name, $this->export_list)){
   if(!empty($rback)){
    $this->LOADER='SCRIPT';
    echo "clearTimeout(ka_timeout);".$rback."('\\'$func_name\\' not callable');";
   }else{
    $this->LOADER='XML';
    echo "'$func_name' not callable";
   };
  }else{
   if(empty($rback)){$this->LOADER='XML';}else{$this->LOADER='SCRIPT';};
   $result='';
   ob_start();
   if(!empty($this->load_func_before))$result.= call_user_func_array($this->load_func_before,$this->load_func_before_arg);
   $result.= call_user_func_array($func_name, $args);
   if(!empty($this->load_func_after))$result.= call_user_func_array($this->load_func_after,$this->load_func_after_arg);
   $text = ob_get_contents();
   ob_end_clean();
   if($result==''){$result=$text;};
   if(!empty($rback)){
    $result="clearTimeout(ka_timeout);".$rback."(".$this->ka_php2js($result).");";
   };
   echo $result;
  };
  exit;
 }
 function JScopy2id($data,$id){
  echo "ka_rexp1 = /(\\<scri\\pt[^>]*?>[^<]*(?:(?!<\\/scri\\pt>)<[^<]*)*<\\/scri\\pt>)/gi;";
  echo "ka_rexp2=/(\\<scri\\pt[^>]*?>|<\\/scri\\pt>)/gi;";
  echo "ka_split=".$data.".split(\"<\\/s\"+\"cript>\");";
  echo "document.getElementById('".$id."').innerHTML='';";
  echo "for(ka_j=0;ka_j<ka_split.length;ka_j++){";
  echo "if(ka_split[ka_j].search(/\\<scri\\pt[^>]*?>/i)!=-1){";
  echo "ka_split[ka_j]+='<\\/s'+'cript>';";
  echo "ka_found=ka_split[ka_j].match(ka_rexp1);";
  echo "document.getElementById('".$id."').innerHTML+=ka_split[ka_j].replace(/\\<scri\\pt[^>]*?>.*?<\\/scri\\pt>/gi,' ');";
  echo "for(ka_i=0;ka_i<ka_found.length;ka_i++){";
  echo "ka_fou=ka_found[ka_i].replace(ka_rexp2,'');";
  echo "ka_script=document.createElement('script');";
  echo "document.getElementById('".$id."').appendChild(ka_script).text=ka_fou;";
//  echo "if(ka_script.text!=ka_fou){eval(ka_fou);};";
  echo "};";
  echo "}else{document.getElementById('".$id."').innerHTML+=ka_split[ka_j];};";
  echo "};";
 }
 function ka_get_common_js() {
  $ka_remote_uri= $this->ka_get_my_uri();
  $t = strtoupper($this->request_type);
  if($t != "GET" && $t != "POST"){$t="POST";};
  ob_start();
  ?>
  <script>
var ka_debug_mode = <?php echo $this->debug_mode ? "true" : "false"; ?>;
var ka_request_type = "<?php echo $t; ?>";
var ka_timeout='';
var ka_cache=<?php echo $this->CACHE;?>;
var ka_cache_list;
function ka_debug(text){
 if (ka_debug_mode)alert("MSG: " + text);
};
function ka_init_object() {
 ka_debug("ka_init_object() called..");
 var A=null;
 try{
  A=new ActiveXObject("Msxml2.XMLHTTP");
 }catch(e){
  try{
   A=new ActiveXObject("Microsoft.XMLHTTP");
  }catch(oc){
   A=null;
  };
 };
 if(!A)ka_debug("Could not create connection object.");
 return A;
};
function ka_error_status(type){
 if(type=='SCRIPT'){
  clearTimeout(ka_timeout);
  span=document.getElementById("ko_script");
  span.innerHTML='';
 }else{x=null;};
<?php echo $this->js_error;?>
};
function save_cache(url,post_data,data){
 if(ka_cache!=0){
  if(post_data!=null){url+=post_data;};
  if(ka_cache_list.length<ka_cache){
  }else{
  };
  alert(ka_cache_list[0]);
 };
};
function load_cache(url,func){
 return false;
};
function ka_do_call(func_name, args){
 var i, x, n;
 var uri;
 var post_data;
 uri = "<?php echo $ka_remote_uri; ?>";
 if(ka_request_type == "GET"){
  if(uri.indexOf("?") == -1)uri=uri + '?rs=' + escape(func_name);
  else uri=uri + "&rs=" + escape(func_name);
  for(i = 0; i < args.length-1; i++) uri = uri + '&rsargs[]=' + escape(args[i]).replace(/\+/g,'%2B');
  uri = uri + '&rsrnd=' + new Date().getTime();
  post_data = null;
 }else{
  post_data = 'rs=' + escape(func_name);
  for(i = 0; i < args.length-1; i++)post_data = post_data + '&rsargs[]=' + escape(args[i]).replace(/\+/g,'%2B');
 };
 if(load_cache(uri,args[args.length-1])){return;};
 x = ka_init_object();
 if(x){
  x.open(ka_request_type, unescape(uri), true);
  if(ka_request_type == "POST"){
   x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
   x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  };
  x.onreadystatechange = function(){
   clearTimeout(ka_timeout);
   if((x.readyState != 4)||(x.status != 200))return;
   ka_debug("received " + x.responseText);
   var data = x.responseText;
   data=data.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/<script/g,"<script defer=true");
   save_cache(uri,post_data,data);
   eval(args[args.length-1]+"('"+data+"')");
   x=null;
  };
  x.send(post_data);
  if(!ka_timeout)ka_timeout=setTimeout(function(){x=null;ka_error_status('XML');},<?php echo $this->timeout;?>000);
 }else{
  uri = "<?php echo $ka_remote_uri; ?>";
  if(uri.indexOf("?") == -1)uri=uri + '?rs=' + escape(func_name)+"&rback="+escape(args[args.length-1]);
  else uri=uri + "&rs=" + escape(func_name)+"&rback="+escape(args[args.length-1]);
  for(i = 0; i < args.length-1; i++) uri = uri + '&rsargs[]=' + escape(args[i]).replace(/\+/g,'%2B');
  uri = uri + '&rsrnd=' + new Date().getTime();
  post_data = null;
  ka_request_type="GET";
  if(!ka_timeout)ka_timeout=setTimeout(function(){ka_error_status('SCRIPT');},<?php echo $this->timeout;?>000);
  var span = null;
  span=document.getElementById("ko_script");
  if(!span){
   span=document.createElement("SPAN");
   span.style.display = 'none';
   span.id='ko_script';
   document.getElementsByTagName("body")[0].appendChild(span);
  };
  span.innerHTML='<s'+'cript defer=true></s'+'cript>';
  var s = span.getElementsByTagName("script")[0];
  if(!s){span.innerHTML='';span.appendChild(document.createElement('script'));s = span.getElementsByTagName("script")[0];};
  ka_debug("Create Script element..."+s);
  s.language = "JavaScript";
  s.defer=true;
  ka_debug("Load script data...");
  if (s.setAttribute) s.setAttribute('src', uri); else s.src = uri;
 };
 ka_debug(func_name + " uri = " + uri + "\n post = " + post_data);
 ka_debug(func_name + " waiting..");
};
</script>
<?php
  $html = ob_get_contents();
  $html=str_replace("\r","",$html);
  $html=str_replace("\n","",$html);
  ob_end_clean();
  return $html;
 }
};
?>


Это сообщение отредактировал(а) MeIsGremlin - 31.8.2007, 12:17

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  all_i_see.jpg 116,21 Kb
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
svip
Дата 31.8.2007, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 27.3.2007

Репутация: нет
Всего: нет



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


Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  ajax.lib.php 8,84 Kb
PM MAIL WWW ICQ   Вверх
svip
Дата 31.8.2007, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 27.3.2007

Репутация: нет
Всего: нет



Цитата(MeIsGremlin @  31.8.2007,  12:08 Найти цитируемый пост)
только добавил тэги <scpirt> в последней функции. Вроде они там нужны.

я не добавлял. у меня так все работает

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  ajax.lib.php 8,84 Kb
PM MAIL WWW ICQ   Вверх
MeIsGremlin
  Дата 1.9.2007, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Цитата(svip @ 31.8.2007,  19:32)
Цитата(MeIsGremlin @  31.8.2007,  12:08 Найти цитируемый пост)
только добавил тэги <scpirt> в последней функции. Вроде они там нужны.

я не добавлял. у меня так все работает

О да клево заработало. Большое спасибо тебе за инфу. А ты не знаешь где базу данных достать? Случайно GeoIP.dat из GeoIP модуля не подойдет?
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
UADeveloper
Дата 1.9.2007, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 8.7.2007
Где: Харьков

Репутация: нет
Всего: нет



Цитата(MeIsGremlin @  1.9.2007,  00:55 Найти цитируемый пост)
 А ты не знаешь где базу данных достать? Случайно GeoIP.dat из GeoIP модуля не подойдет?
Эсть база 2006го. (20 мб) Города и страны. - в ПМ.
Еще эсть у меня база 200 мб  smile 

PM MAIL   Вверх
MeIsGremlin
  Дата 1.9.2007, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Цитата(UADeveloper @ 1.9.2007,  09:27)
Цитата(MeIsGremlin @  1.9.2007,  00:55 Найти цитируемый пост)
 А ты не знаешь где базу данных достать? Случайно GeoIP.dat из GeoIP модуля не подойдет?
Эсть база 2006го. (20 мб) Города и страны. - в ПМ.
Еще эсть у меня база 200 мб  smile

Ого. Ну 20 MB это нормальное еще но 200 много. А где взять на 20 MB?
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
svip
Дата 2.9.2007, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 27.3.2007

Репутация: нет
Всего: нет



а можно эти базы гдето выложить и 20 и 20 метров. Было бы супер
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.