Такс есть скрипт который автоматом заполняет форму подбирая слова по первым веденный бувам! Есть две строки формы это "Имя" и "Фамилия", вожу я в строке "Имя" букву "Н" то выводиться список со всеми именами где есть буква Н, и после того как выбрать нужное нам слова автоматом в строку Фамилия вставляется Фамилия выбранного человека ! так вот а все эти слова записаны в файле search.php вот его образец!
$q = strtolower($_GET["q"]);
if (!$q) return;
$items = array(
"Петр"=>"Иванов",
"Иван"=>"Петров",
"Марина"=>"Пугачева",
"Барак"=>"Абама",
"Чен"=>"Ли",
);
foreach ($items as $key=>$value) {
if (strpos(strtolower($key), $q) !== false) {
echo "$key|$value\n";
}
}
Так вот, мне нужна сделать так что выводились списки из БД Mysql в массив $items такой же схемой как сверху указанно, пробовал все но не как не получается, далее через цикл foreach массив идет на обработку, эту обработку так и нужно оставить! Прошу помочь мне ребят...
Спустя 13 минут, 54 секунды (19.07.2012 - 07:55) kamanch написал(а):
$simbol = "Н";
$items = array();
$query = "SELECT `firstname`, `lastname` FROM `users` WHERE `firstname` LIKE '%".$simbol."%' ";
$result = mysql_query($query);
while($user = mysql_fetch_assoc($result)){
$items[$user['firstname']] = $user['lasttname'];
}
Но есть одно большое НО!
Ты в качестве ключа у массива указываешь имя.
Ключ у массива - это уникальная штука.
И если в базе будет 2 записи:
Петр Иванов
Петр Васильев
то в массиве $items будет создан элемент с ключем "Петр" и туда записано значение "Иванов", а потом для элемента этого массива с ключем "Петр" будет перезаписано значение на "Васильев"
Т.е.
$item = array();
$item("Петр") ="Иванов";
$item("Марина") = "Пугачева";
$item("Петр") = "Васильев";
и вывод будет:
"Петр" => "Васильев"
"Марина" => "Пугачева"
Спустя 14 минут, 30 секунд (19.07.2012 - 08:10) Gigabit написал(а):
ппц.. я вроде так делал но не не получалось, хотя может и не так ! Спасибо табе получилось все ок))! скажи а есть ли возможность добавить к ним еще и отчество? или это все схему менять надо?
Спустя 4 минуты, 12 секунд (19.07.2012 - 08:14) kamanch написал(а):
Цитата |
возможность добавить к ним еще и отчество? |
$items[$user['firstname']][$user['lasttname']] = $user['fathername'];
Или какая тебе структура массива нужна с отчеством?
Спустя 14 минут, 41 секунда (19.07.2012 - 08:28) Gigabit написал(а):
а так можно
для того чтобы понят о чем я может ты сам скрипт посмотришь? вот ссылка там много примеров в демо , мне нужена строка Single Bird (remote):
и при вводе например Иван он не будет выводить его фамилию и плюс отчество?
$items[$user['firstname']] = $user['lasttname'];
$items[$user['firstname']] =$user['fathername'];
то есть $items = array ("Иван" => "Петров", "Иван" => "Владмирович", "Петр"=>"Иванов","Петр"=>''Сергеевич")
для того чтобы понят о чем я может ты сам скрипт посмотришь? вот ссылка там много примеров в демо , мне нужена строка Single Bird (remote):
Спустя 4 минуты, 7 секунд (19.07.2012 - 08:33) kamanch написал(а):
Мое сообщение перечитай Одно большое НО!
В массиве не может быть 2 одинаковых ключа.
Такого не бывает. "Иван" - это ключ, он уникальный.
В массиве не может быть 2 одинаковых ключа.
$items = array ("Иван" => "Петров", "Иван" => "Владмирович")
Такого не бывает. "Иван" - это ключ, он уникальный.
Спустя 4 минуты, 30 секунд (19.07.2012 - 08:37) Gigabit написал(а):
что иван это ключ я знаю, вопрос как мне фамилию и отчество посадить на один ключ
Спустя 5 минут, 44 секунды (19.07.2012 - 08:43) kamanch написал(а):
Ну я ж не знаю, какая тебе структура массива нужна.
Можно так:
Но это все очень некрасивые решения.
И к тому же, у тебя не сможет быть 2 Ивана с разными фамилиями.
Ты опиши, что надо получить, придумаем структуру.
Можно так:
$items['Иван']['Петров'] = "Владмирович";
Но это все очень некрасивые решения.
И к тому же, у тебя не сможет быть 2 Ивана с разными фамилиями.
Ты опиши, что надо получить, придумаем структуру.
Спустя 17 минут, 54 секунды (19.07.2012 - 09:01) Gigabit написал(а):
мне нужно чтобы при воде БИК -(идентификационный номер банка) выводились в следующих 3 строках input название банк? его адрес, название и корреспондентский счет вот пример формы:
<form>
Бик: <input name="bik" value="">
Название банка: <input name="name" value="">
Адрес банка: <input name="adres" value="">
Корресп. счет: <input name="krsch" value="">
</forma>
Спустя 19 минут, 11 секунд (19.07.2012 - 09:20) kamanch написал(а):
</forma> буква лишняя
Остальное сейчас...
Остальное сейчас...
Спустя 1 час, 3 минуты, 25 секунд (19.07.2012 - 10:23) kamanch написал(а):
Фух... с этим Ajax ... вещь прикольная, но 3ий раз в жизни делаю :D
В общем... возвращаясь к предыдущему топику.
Я тебе там посоветовал разобраться в самой технологии, дал ссылку на самые примитивы, как раз то, что для твоего примера надо было.
А ты все равно ушел в какие-то фреймворки... массивы, имена, отчества...
Лично мое мнение - сначала все научиться делать ручками. А потом, когда придет понимание, что там внутри происходит, тогда уже фрейморки пользовать.
Иначе, как ты будешь ошибки вылавливать, если ты даже не понимаешь, как оно там происходит.
В общем, держи:
Под чесное слово, что разберешься в каждой строчке, а потом объяснишь своему коту так, чтобы он понял :)
Я поставил ограничение на БИК - минимум 4 символа
index.php
ajax_search.php
ajax_framework.js
В общем... возвращаясь к предыдущему топику.
Я тебе там посоветовал разобраться в самой технологии, дал ссылку на самые примитивы, как раз то, что для твоего примера надо было.
А ты все равно ушел в какие-то фреймворки... массивы, имена, отчества...
Лично мое мнение - сначала все научиться делать ручками. А потом, когда придет понимание, что там внутри происходит, тогда уже фрейморки пользовать.
Иначе, как ты будешь ошибки вылавливать, если ты даже не понимаешь, как оно там происходит.
В общем, держи:
Под чесное слово, что разберешься в каждой строчке, а потом объяснишь своему коту так, чтобы он понял :)
Я поставил ограничение на БИК - минимум 4 символа
index.php
Свернутый текст
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<script language="javascript" src="ajax_framework.js"></script>
</head>
<body>
<form>
Бик: <input name="bik" value="" id="bik" onkeyup="javascript:search_bank()" ><br />
<div id="result">
Название банка: <input name="name" value="" /><br />
Адрес банка: <input name="adres" value="" /><br />
Корресп. счет: <input name="krsch" value="" /><br />
</div>
</form>
</body>
</html>
ajax_search.php
Свернутый текст
<?php
define(DB_HOST, "localhost");
define(DB_USER, "root");
define(DB_PASS, "ldjksdfjklsdfjlsdjlksdjkldlsd");
define(DB_NAME, "test");
$link=mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Could not connect");
mysql_select_db(DB_NAME) or die("Could not select database");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_results = 'utf8'");
mysql_query("SET collation_connection = 'utf8_general_ci'");
if(isset($_GET['bik'])){
$bik=trim($_GET['bik']);
}
if($bik != ""){
$query="SELECT `name`, `adres`, `krsh` FROM `bank` WHERE `bik` LIKE '".$bik."%' LIMIT 0,1";
$result=mysql_query($query);
$bank = mysql_fetch_assoc($result);
?>
Название банка: <input name="name" value="<?= $bank['name'] ?>" /><br />
Адрес банка: <input name="adres" value="<?= $bank['adres'] ?>" /><br />
Корресп. счет: <input name="krsch" value="<?= $bank['krsh'] ?>" /><br />
<?php
}
?>
ajax_framework.js
Свернутый текст
/* -------------------------- */
/* XMLHTTPRequest Enable */
/* -------------------------- */
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
} else {
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
/* -------------------------- */
/* SEARCH */
/* -------------------------- */
function search_bank() {
searchq = encodeURI(document.getElementById('bik').value);
if(searchq.length > 3){
nocache = Math.random();
http.open('get', 'ajax_search.php?bik='+searchq+'&nocache = '+nocache);
http.onreadystatechange = search_bank_Reply;
http.send(null);
}
}
function search_bank_Reply() {
if(http.readyState == 4){
var response = http.responseText;
document.getElementById('result').innerHTML = response;
}
}
Спустя 27 минут, 50 секунд (19.07.2012 - 10:51) Gigabit написал(а):
ОФИГЕТЬ! ты скрипт написал весь))) огромное тебе спасибо, я начал учить ajax ?не не так быстро дался как ты писал, но времени нет чтобы отлажить проект и учить, вот докончу его и возьмусь за обучение ajax, php, jquery