Jump to content
php.lv forumi

IE un inertHTML <select>'ā


Wuu

Recommended Posts

http://support.microsoft.com/kb/276228

Vienu fixu google atradu ,bet tas nestrādā! Ieteikumi!

 

Ja Tu doma par to kā select tagaa iebarot option tagus, tad neizdosies. IE to nelauj ( IE6 toč ne).

Alternatīva ir izmantojot objektu Option sagatavot jaunus selectBox'a izveles elementus.

 

Piemers: (req - Ajax objekts; no servera puses tiek sagatavots XML fails)

      //novacam vecos
var count = document.forms['ManaForma'].laucins.options.length;
for(var i=count; i >= 0; i--){
	document.forms['ManaForma'].laucins.options[i] = null;
}

  var xmldoc = req.responseXML;
  var root = xmldoc.getElementsByTagName('root').item(0);
	for (var iNode = 0; iNode < root.childNodes.length; iNode++) {
		var node = root.childNodes.item(iNode);
		document.forms['ManaForma'].laucins.options[iNode] = new Option(node.childNodes[0].nodeValue,node.getAttribute("value"));
	}

Edited by MC_
Link to comment
Share on other sites

MC_ neesmu vel tik gurs javascripta ,īsti nespēju tavu kodu izlasīt ,bet cik saprotu tas ir strādājoši variants.

man šobrīd tas strādā šādi.

 

var gallery = document.getElementById('galler_list_1');
gallery.innerHTML = '<option value="" selected>--' + recive;

 

viss kam jāinerto ir recive varā ,tātad recive ir jau saņemts no php gatavs un uzreiz vairāki. Cik saprotu tava variantā XML katrs lauciņš ir atdalīts atsevišķi.

 

Otrs variants ir varbūt nepieprasīt visu pa jaunu. Šeit man funkcija kas pievieno jaunu select lauciņu.

function add_gallery() {
var gallery = document.getElementById('galleryname').value; //Jaunās galerijas nosaukums.
 if(gallery.length != 0) { //Pārbaudam garumu
	send('010'+gallery); //Nosūtam datus uz php ,lai izveido jaunu galeriju.
	empty_input('galleryname'); //Dzēšam galerijas ievades lauciņu.
} 
}

Varbūt caur šo funkciju var vienkārši pievienot vienu jaunu ,tā būtu arī pareizāk. Nemaz nepieprasot visu atjaunot no php.

 

Bilde lai varbūt vairāk saprastu.

vgupuedp9dln9kvxoo0d.png

Link to comment
Share on other sites

Šis Tev nestrādās uz IE6:

var gallery = document.getElementById('galler_list_1');
gallery.innerHTML = '<option value="" selected>--' + recive;

 

 

Tavā gadijumā būs šādi:

var gallery = document.getElementById('galler_list_1');
optionsLength = gallery.options.length;

newItemName = 'Mans jaunais';
newItemValue = '4'; 
// HTML'iski tas izkatisies šādi:
// <option value="4">Mans jaunais</option>

gallery.options[optionsLength] = new Option(newItemName, newItemValue);
//gallery.options[optionsLength].selected = true;

 

newItemName un newItemValue, protams, vari sagatavot php pusē.

Mans piemers, kas augstāk, ir strādājoš un option values ielasa no XML dokumenta, kuraš izskatas:

<?xml ... ?>
<root>
 <option value="1">Pirmais</option>
 <option value="2">Otrais</option>
 ...
</root>

Link to comment
Share on other sites

Savā laikā es arī sastapos ar šo problēmu, mēģināju ar ajax selecta optionus mainīt. Tas ir kaut kāds kārtējais IE bugs, vai varbūt viņi speciāli neļauj to darīt. Es problēmu atrisināju samērā vienkārši, lai netērētu daudz laika risināšanai, paņēmu visu selectu ieliku divā un mainīju innerHTML divam, protams mainot innerHTML šajā gadījumā ir jāraksta ar visu <select>. Šī pieeja strādā, bet ne visai ērti ir.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...