Autor Zpráva
residentcz
Profil
Ahojte

Mám problém a to že mi tento script přepisuje všechny proměné vURL a já bych chtěl, aby to přepsalo jen to ks. :((

<a id="reflectedlink" href="prodej-av-techniky-objednavka.php?produkty=akce&id2&ks=1">objednavka</a>

<input onfocus="this.value=''" value="1" id="pocetks" size="3" style="float:left; margin-right:5px;" />

<script type="text/javascript">
    var link= document.getElementById('reflectedlink');
    var input= document.getElementById('pocetks');
    input.onchange=input.onkeyup= function() {
    link.search= '&ks='+(input.value);
         
    };
</script>

díky za jakoukoliv radu
Kajman
Profil
Udělejte replace, viz.
link.href=link.href.replace(..
residentcz
Profil
Kajman:
nejde to :(

link.search=link.search.replace ('&ks='+(input.value));
Str4wberry
Profil
Čti pozorněji.
Kajman
Profil
Té metodě replace musíte dát i první parametr, co chcete nahrazovat, klikněte si na ten manuál. Určitě se Vám hodí i jindy.

Možná to bude /&ks=[^&]*/
residentcz
Profil
Díky moc všem :))

finálové řešení
  <a  id="reflectedlink" style="float:left" class="objednatodkaz" href="prodej-av-techniky-objednavka.php?produkty=<?php $produkty = $_GET['produkty'];echo($produkty);?>&id=<?php $id = $_GET['id'];echo($id);?>&ks=1" title="Vytvořit objednávku">
   <input onfocus="this.value=''" value="1" id="pocetks" size="3" style="float:left; margin-right:5px;" />     

<script type="text/javascript">
    var link= document.getElementById('reflectedlink');
    var input= document.getElementById('pocetks');
    input.onchange=input.onkeyup= function() {
    link.href=link.href.replace (/&ks=1/i, '&ks='+(input.value)); 
     
    };
</script>
Kajman
Profil
residentcz:
finálové řešení

Když tam nastane jedna změna v ks, tak už tam nemusí být jednička a ten regulár nebude při další změně fungovat dobře.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0