как да задам опция за избор, избрана по стойност от базата данни?

Създадох страница за регистрация и страница за редактиране, която съдържа 3 опции за избор. Докато регистрирам потребител, съхранявам данните в база данни, която съдържа стойността на опцията за избор, когато потребителят щракне върху страницата за редактиране, мога да попълня текстовите полета с данните, които извличам от базата данни, но не мога да избера опцията за избор която стойността, която получавам от базата данни, кодът, който използвах, за да направя това, е:

променливата company съхранява данните за стойността на опцията от базата данни

<select name="select-choice-a" id="select-choice-a" data-native-menu="false" data-theme="a">
     <option>Select Company</option>
        <option value="standard">facebook</option>
        <option value="rush">Linked In</option>
        <option value="express">Skype</option>
        <option value="overnight">Twitter</option>
    </select>

JavaScript

function fetchdetails(){
db.transaction(function(tx){
    tx.executeSql(select_details,[ids,nam1],function(tx,results){
        for(var i=0;i<results.rows.length;i++){
        first_name=results.rows.item(i).frist_name;
        last_name=results.rows.item(i).last_name;
        company=results.rows.item(i).company;
        title=results.rows.item(i).title;
        industry=results.rows.item(i).industry;
        owner=results.rows.item(i).owner;
        email=results.rows.item(i).email;
        landline=results.rows.item(i).landline;
        mobile_no=results.rows.item(i).mobile;
        fax_no=results.rows.item(i).fax_no;
        website=results.rows.item(i).website;
        street=results.rows.item(i).street_name;
        city=results.rows.item(i).city;
        region=results.rows.item(i).region;
        pincode=results.rows.item(i).pincode;
        country=results.rows.item(i).country;
        linkedin=results.rows.item(i).linkedin_link;
        twitter=results.rows.item(i).twitter_link;
        facebook=results.rows.item(i).facebook_link;
        skype=results.rows.item(i).skype_link;
        additionalinfo=results.rows.item(i).additional_info;

        }
    });
});
}

var index='';
var x=document.getElementById('select-choice-a');
alert(x.options.length);
for(var i=0;i<x.options.length;i++){
    if(x.options[i].value===company)
        {
        alert("I am in select option"); 
        index=i;
        alert("index of select-choice-a"+index);
        break;
        }
}
x.options[index].selected=true;

person Neerav Shah    schedule 13.07.2013    source източник
comment
Какво искате да направите?, моля, изяснете   -  person Hitesh Siddhapura    schedule 13.07.2013
comment
Това, което искам е, когато потребителят избере опцията за редактиране, страницата за редактиране ще бъде отворена и тази страница ще съдържа данните от базата данни. мога да задам полетата с данни от базата данни. Също така искам опцията за избор да зададе избрана със стойността, която получавам от базата данни.   -  person Neerav Shah    schedule 13.07.2013


Отговори (1)


сменете вашия код

var index='';
var x=document.getElementById('select-choice-a');
alert(x.options.length);
for(var i=0;i<x.options.length;i++){
    if(x.options[i].value===company)
        {
        alert("I am in select option"); 
        index=i;
        alert("index of select-choice-a"+Index);
        break;
        }
}
x.options[index].selected=true;

с

<script type="text/javascript">
var company='';
fetchdetails();
var x=document.getElementById('select-choice-a');
var index=0;
for(var i=0;i<x.options.length;i++){
    if(x.options[i].value===company)
        {
        alert("I am in select option"); 
        index=i;
        alert("index of select-choice-a"+index);
        break;
        }
}
x.options[index].selected=true;
</script>
person Hitesh Siddhapura    schedule 13.07.2013
comment
използвах този метод, за да задам опция за избор var x=2; document.getElementById(select-choice-a).selectedIndex=x; работи на браузър, но когато го стартирате на емулатор, не работи. Искам да кажа, че не е избрана опцията за избор на набор. - person Neerav Shah; 13.07.2013
comment
@NeeravShah, каква стойност съдържа фирмената променлива? стандартно ли е или facebook?? - person Hitesh Siddhapura; 13.07.2013
comment
фирмената променлива съдържа стандартна стойност. - person Neerav Shah; 13.07.2013
comment
Хей, пробвах работи, но можеш ли да ми кажеш защо не работи, когато се опитам да заредя стойността на компанията от базата данни. означава, че извиквам функция, която извлича данни от базата данни и след това трябва да зададе избраната опция за избор на тази стойност. - person Neerav Shah; 13.07.2013
comment
@NeeravShah, напиши своя код, който зарежда стойност във фирмената променлива. - person Hitesh Siddhapura; 13.07.2013
comment
@NeeravShah, fetchdetails() javascript функция ли е? ако да, как е възможно tx.executeSql? Мисля, че неговата PHP функция. така че трябва да съхранявате php променлива в Javascript. тогава можете да получите достъп до него - person Hitesh Siddhapura; 13.07.2013
comment
не, това не е Php функция, а javascript функция, която използвам, за да коригирам данните от таблицата на локалната база данни. Първо ще ви обясня потока, той ще покаже изглед на списък с регистриран потребител, когато потребителят избере потребител, той ще съхрани името и идентификатора на избрания потребител и ще зареди страница за редактиране в тази страница, функцията за зареждане се извиква, за да извлече данните от temp таблица ще се използват данни за извикване на главната таблица за извличане на пълен ред на потребителя, който е избран. - person Neerav Shah; 13.07.2013
comment
@NeeravShah, пропускаш нещо голямо тук, има множество записи и просто презаписваш всеки път в променливата „компания“. - person Hitesh Siddhapura; 13.07.2013
comment
@NeeravShah, ако всичко е наред, първо трябва да извикате функцията fetchdetails(), а също така трябва да декларирате var company=''; променлива преди функцията. - person Hitesh Siddhapura; 13.07.2013
comment
Бях декларирал var company='' и можете ли да ми кажете как да извикам функцията за извличане на подробности първо bcz, когато заредя страницата, първо извиквам функцията getdetails и след това извиквам функцията за извличане на подробности и по-долу функцията за извличане на подробности имах да върна изберете код на опцията. - person Neerav Shah; 13.07.2013
comment
И ако поставя кода за избор на опция, за да функционира, той не работи. - person Neerav Shah; 13.07.2013
comment
ако извикам функцията за извличане на детайли тук, тогава тя не се връща обратно към опцията за избор bcz, след като влезе във функцията за извличане на подробности, тогава извиква функцията за попълване на подробности, където попълва текстовите полета с извличането на данни от базата данни. - person Neerav Shah; 13.07.2013
comment
@NeeravShah, трябва да изберете поне веднъж функцията fetchdetails(), без да извиквате как попълвате стойност във фирмената променлива? - person Hitesh Siddhapura; 13.07.2013
comment
извиквам опцията за извличане на подробности, но тя не се връща обратно, за да изберете опция, тя просто завършва изпълнението на функцията и зарежда страницата за редактиране. - person Neerav Shah; 13.07.2013
comment
добре, кажи ми едно нещо, че функцията за извличане на подробности и опцията за избор трябва да се постави в същия скрипт - person Neerav Shah; 13.07.2013
comment
@NeeravShah, да, можеш. но се уверете, че не влиза в безкраен цикъл fetchdetails(). - person Hitesh Siddhapura; 13.07.2013
comment
добре, опитах, но все пак проблемът е същият, когато извикам подробности за извличане, той изпълнява функцията, но не извиква цикъла for в опцията за избор. можете ли да дадете пример, ако е възможно. - person Neerav Shah; 13.07.2013
comment
създайте jsFiddle или phpFiddle който и да е пакет за вашите данни или качете на който и да е жив сървър. така че мога да видя и тествам @NeeravShah - person Hitesh Siddhapura; 13.07.2013
comment
съжалявам, не знам как да създам jsfiddle файл. - person Neerav Shah; 13.07.2013