Autor Zpráva
czcore
Profil *
ahoj. v JS jsem začátečník, věnuji se spíše php, a proto bych potřeboval radu.

mám formulář z kterého se prokliknu do dceřiného okna. tam se vypíše několik položek (produktů) a do parent okna se při kliknutí předává jejich id. protože jde navolit počet kusů tak se spolu s kódem předá i právě počet kusů - do inputu v parent okně se pak propíše výsledek v podobe "idxkusy" a jako oddělovač se používá středník. so far so good. ale pokud si uživatel rozmyslí počet kusů, změní ho a znovu klikne na předání, tak se do inputu id i s kusy propíše znovu s tím, že tam zůstává i původní hodnota.
potřeboval bych při kliknutí prohledat input parent okna, jestli už v něm id jednou není zapsané a pokud ano, tak nahradit počet kusů.

zdrojový kód zatím vypadá takhle:


<span style='margin-left: 18px;'>
[<a style='color: #C1292E; text-decoration: none;' title='Vložit'
href='#' onclick="opener.document.new_order.orders_product_code.value=
opener.document.new_order.orders_product_code.value + '$products_code' + 'x' + document.forms['pieces']['products_pieces_$i'].value + ';'" style='color: black; text-decoration: none; '>Vložit</a>]&nbsp;
<input type='text' size='1' name='products_pieces_$i' /> kusů
</span>


předpokládám že na to bude třeba nějaká funkce, která vezme hodnotu inputu parent okna, prohledá ho o dané id, vyřízne ho, upraví hodnotu za "x" a vloží kód do inputu parent okna zpět upravený.

některým z vás to možná přijde triviální, tak vám určitě nezabere moc času to případně napsat :-) díky moc
venca12
Profil
Pokud to chápu dobře, tak tě zkusím troch popostrčit.

Máš uložená id v řetězci, dejme tomu takhle 'id1;id2;id3;id4' a teď chceš odstranit id2 (víš, že je to id2), tak můžeš provýst následující věc.

Rozdělíš si řetězec na pole podle středníku metodou split.
pole = 'id1;id2;id3;id4'.split(';');


Přidáš javascriptovému objektu Array metodu pro odstranění jednoho prvku.
/**

* odstraneni prvku z pole
*/
Array.prototype.drop = function(prvek)
{

a = new Array();
// vymazu stavajici polozky pole
while(this.length)
a.push(this.shift());
// projedu pole 'a' a v pripade nalezeni shody, polozku preskocim
while(a.length)
{
item = a.shift();
if(!(item == prvek)) this.push(item);
}

return true;

}

Odstraníš položku z pole a uděláš z něj zpět řetězec.

pole.drop('id2');
retezec = pole.join(';');

Snad jsem ti v tom neudělal ještě větší guláš, než v tom teď máš.
czcore
Profil *
naopak, super, díky moc
Toto téma je uzamčeno. Odpověď nelze zaslat.