Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.11.2008, 06:33
HOmevl
 
Сообщений: n/a

Выбор из таблицы
Помогите.пож. разобраться....
Есть скрипт выбора города,это когда ьпривыборе района меняется содержимое для выбора города.Скрипт за основу взяла тандартный
http://javascript.internet.com/forms/country.html
Только вот городов и районов у меня много..Районы я смогла прикрутить -сдеать выборку из бызы данных,а не перечисляя все в селекте..
А вот с городами не могу разобраться..Как прикрутить этот выбор к имеющейся таблице?
таблица с городами такая:
CREATE TABLE `suburb` (
`suburb` int(11) NOT NULL default '0',
`suburb_name` varchar(255) default NULL,
`country` int(11) NOT NULL default '0',
PRIMARY KEY (`suburb`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Скрипт выбора такой:
в хедере(сокращенно):
var anchArray = new Array("('Âûáåðèòå íàñåëåííûé ïóíêò','',true,true)",
"(' Âåñ¸ëûé')",
"(' Ðèñîâîå')",
"('Àíó÷èíî')",
"('Àóðîâêà')",
"('Âèíîãðàäîâêà')",
"('Âèíîãðàäîâñêîå')",
"('Ãðàæäàíêà')",
"('Ãðàæäàíñêîå')",
"('Ãðîäåêîâî')",
"('Åëîâêà')",
"('Èëüìàêîâêà')",
"('Êîðíèëîâêà')",
"('ËÇÏ-3')",
"('Ëóãîõóòîð')",
"('Ìóðàâåéêà')",
"('Íîâîâàðâàðîâêà')",
"('Íîâîãîðäååâêà')",
"('Íîâîïîêðîâêà')",
"('Íîâîòðîèöêîå')",
"('Îðëîâêà')",

выбор городов-по каждому району разный

"('Øåêëÿåâî')",
"('ßñíàÿ Ïîëÿíà')",
"('Äðóãîå')");


function populateCountry(inForm,selected) {
var selectedArray = eval(selected + "Array");
while (selectedArray.length < inForm.suburb.options.length) {
inForm.suburb.options[(inForm.suburb.options.length - 1)] = null;
}
for (var i=0; i < selectedArray.length; i++) {
eval("inForm.suburb.options[i]=" + "new Option" + selectedArray[i]);
}
if (inForm.country.options[0].value == '') {
inForm.country.options[0]= null;
if ( navigator.appName == 'Netscape') {
if (parseInt(navigator.appVersion) < 4) {
window.history.go(0);
}
else {
if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
window.history.go(0);
}
}
}
}
}
function populateUSstate(inForm,selected) {
var stateArray = new Array("('Select State','',true,true)",
"('Alabama')",
"('Alaska')",
"('Arizona')",
"('Arkansas')",
"('California')",
"('Colorado')",
"('Connecticut')",
"('Delaware')",
"('Columbia')",
"('Florida')",
"('Georgia')",
"('Hawaii')",
"('Idaho')",
"('Illinois')",
"('Indiana')",
"('Iowa')",
"('Kansas')",
"('Kentucky')",
"('Louisiana')",
"('Maine')",
"('Maryland')",
"('Massachusetts')",
"('Michigan')",
"('Minnesota')",
"('Mississippi')",
"('Missouri')",
"('Montana')",
"('Nebraska')",
"('Nevada')",
"('New Hampshire')",
"('New Jersey')",
"('New Mexico')",
"('New York')",
"('North Carolina')",
"('North Dakota')",
"('Ohio')",
"('Oklahoma')",
"('Oregon')",
"('Pennsylvania')",
"('Rhode Island')",
"('South Carolina')",
"('South Dakota')",
"('Tennessee')",
"('Texas')",
"('Utah')",
"('Vermont')",
"('Virginia')",
"('Washington')",
"('West Virginia')",
"('Wisconsin')",
"('Wyoming')");
if (selected == 'USA') {
for (var i=0; i < stateArray.length; i++) {
eval("inForm.suburb.options[i]=" + "new Option" + stateArray[i]);
}
if ( navigator.appName == 'Netscape') {
if (parseInt(navigator.appVersion) < 4) {
window.history.go(0)
}
else {
if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
window.history.go(0)
}
}
}
}
else {
}
if (selected == 'Other') {
newCountry = "";
while (newCountry == ""){
newCountry=prompt ("Please enter the name of your country.", "");
}
if (newCountry != null) {
inForm.suburb.options[(inForm.suburb.options.length-1)]=new Option(newCountry,newCountry,true,true);
inForm.suburb.options[inForm.suburb.options.length]=new Option('Other, not listed','Other');
}
}
if(inForm.suburb.options[0].text == 'Select suburb') {
inForm.suburb.options[0]= null;
}
}


////////////////////


function text (str) { return /[0-9_;:'!~?=+<|>]/g.test(str); }

function numeric (str) { return /^[0-9-.\+\(\)\s]+z/.test(str + "z"); }

function mail (str) { return /^[a-z0-9_\.]+@[a-z0-9_\.]+.[a-z]{2,3}$/.test(str); }

function checkForm ()
{
var title;
var elem;
var dutyField = "Íå çàïîëíåíî ïîëå ";
var wrongField = "Íåâåðíîå çíà÷åíèå ïîëÿ ";
var check = true;

function checkError (field, str)
{
document.getElementById("alert").innerHTML = str;
document.forms.preview.field.focus();
check = false;
}

document.getElementById("alert").innerHTML = "";

if (check)
{
elem = document.preview.country.value;
if (elem == 0) checkError('country', 'Âûáåðèòå,ïîæàëóéñòà,ðåãèî ');
}

if (check)
{
title = '"Êîëè÷åñòâî êîìíàò (òîëüêî öèôðû è òî÷êà!)"';
elem = document.preview.room.value;
if (elem.length !== 0){
if (!numeric(elem)) checkError('room', wrongField + title);
}}
if (check)
{
title = '"Îáùàÿ ïëîùàäü (òîëüêî öèôðû è òî÷êà!)"';
elem = document.preview.sss.value;
if (elem.length !== 0){
if (!numeric(elem)) checkError('sss', wrongField + title);
}}
if (check)
{
title = '"Æèëàÿ ïëîùàäü (òîëüêî öèôðû è òî÷êà!)"';
elem = document.preview.sss_jil.value;
if (elem.length !== 0){
if (!numeric(elem)) checkError('sss_jil', wrongField + title);
}}
if (check)
{
title = '"Ïëîùàäü êóõíè (òîëüêî öèôðû!)"';
elem = document.preview.sss_k.value;
if (elem.length !== 0){
if (!numeric(elem)) checkError('sss_k', wrongField + title);
}}
if (check)
{
title = '"Îïèñàíèå"';
elem = document.preview.description.value;
if (elem.length == 0) checkError('description', dutyField + title);
}
if (check)
{
title = '"Âàøå èìÿ"';
elem = document.preview.name.value;
if (elem.length == 0) checkError('name', dutyField + title);
}
if (check)
{
title = '"E-mail"';
elem = document.preview.email.value;
if (elem.length == 0) checkError('email', dutyField + title);
else if (!mail(elem)) checkError('email', wrongField + title);
}
if (check)
{
elem = document.preview.agree.checked;
if (!elem) checkError('agree', 'Âû äîëæíû ïðèíÿòü óñëîâèÿ ñîãëàøåíèÿ');
}

if (check) { document.preview.submit(); }

return check;
}
Ответить с цитированием
  #2 (permalink)  
Старый 15.11.2008, 10:12
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Шикааарно.
Оформите пожалуйста тему используя теги html и js.
Ответить с цитированием
  #3 (permalink)  
Старый 16.11.2008, 02:34
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

Не знаю почему, но пост сильно развеселил
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2011, 22:16
kdg kdg вне форума
Новичок на форуме
Отправить личное сообщение для kdg Посмотреть профиль Найти все сообщения от kdg
 
Регистрация: 14.09.2011
Сообщений: 1

готовый скрипт с SQL базой здесь: http://htmlweb.ru/ajax/example/region.php
Ответить с цитированием
  #5 (permalink)  
Старый 15.09.2011, 01:40
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

Да чего тут весёлого... Код не оформлен, вместо русских букв ХЗ что

Вот ход с глобальной переменной check довольно оригинален

Я, правда, не знаю, как можно сделать красивым и семантическим код таких множественных проверок. Можно вообще всё вогнать в одну функцию и делать return false где нужно, но это вообще было бы убожество. Не знаю, честно... Может, все функции проверки в массив запихать и вызывать в цикле?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор фреймворка маина Библиотеки/Тулкиты/Фреймворки 12 14.03.2009 22:21
Выбор только одного чекбокса nashekino Общие вопросы Javascript 7 23.10.2008 00:23
AJAX Выбор Страна - Регион - Город - Метро Jumong Общие вопросы Javascript 4 12.10.2008 02:19
Электронные таблицы на JS gagagogo Элементы интерфейса 27 17.09.2008 22:07
Drag&Drop перетаскивание таблицы magistr_bender Элементы интерфейса 5 15.09.2008 15:33