Показать сообщение отдельно
  #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;
}
Ответить с цитированием