Autor Zpráva
FUYO
Profil *
Dobrý den,

potřeboval bych když napíšu nějaký text do jednoho inputu, se také napsal do druhého inputu, lze to nějak? Jde mi oto, že kdy napišu do jednoho Inputu: Ahoj světe! napsalo do druhýho také Ahoj světe! stím že pa kbych si to upravil jak bych potřeboval (odstranění diakritiky)
jenikkozak
Profil
FUYO:
<input type="text" onkeyup="document.getElementById('doplnit').value=this.value">
<input type="text" id="doplnit">
Ajax se používá na komunikaci stránky se serverem, to tady nepotřebuješ.
FUYO
Profil *
a jak to proženu, aby v <input type="text" id="doplnit"> nebyla diakritika?

nějak tam implementovat

   function utf2ascii($text)
    {
        $return = Str_Replace(
                        Array("á","č","ď","é","ě","í","ľ","ň","ó","ř","š","ť","ú","ů","ý","ž","Á","Č","Ď","É","Ě","Í","Ľ","Ň","Ó","Ř","Š","Ť","Ú","Ů","Ý","Ž") ,
                        Array("a","c","d","e","e","i","l","n","o","r","s","t","u","u","y","z","A","C","D","E","E","I","L","N","O","R","S","T","U","U","Y","Z") ,
                        $text);
        $return = Str_Replace(Array(" ", "_"), "-", $return); //nahradí mezery a podtržítka pomlčkami
        $return = Str_Replace(Array("(",")",".","!",",","\"","'"), "", $return); //odstraní ().!,"'
        $return = StrToLower($return); //velká písmena nahradí malými.
        return $return;
    }    

asi nepude ne?
SeparateSK
Profil
Vytvor si dva scripty, napr. index.php a v tom budeš mať toto:
<script>
    function VymazExtraZnaky(val,obj){
        //kopiruje zmenene val do obj.value
        val=val.replace(/\[/gi,"\\[");
        val=val.replace(/\]/gi,"\\]");
        val=val.replace(/\&/gi,"[AND_GLOBAL_CHAR]");
        val=val.replace(/\\t/gi,"[TAB_GLOBAL_CHAR]");
        val=val.replace(/\#/gi,"[SHARP_GLOBAL_CHAR]");
        var x;
        (XMLHttpRequest)?x=new XMLHttpRequest():x=new ActiveXObject("Microsoft.XMLHTTP");
        x.onreadystatechange=function(){
            if(x.status==200 && x.readyState==4){
                obj.value=x.responseText;
            }
        }
        x.open("GET","check.php?text="+val,true);
        x.send();
    }
</script>
<input type="text" onkeyup="VymazExtraZnaky(this.value,document.getElementById('out'));">
<input type="text" id="out">
A check.php, kde bude toto:
<?php
function utf2ascii($text)
    {
        $return = Str_Replace(
                        Array("á","č","ď","é","ě","í","ľ","ň","ó","ř","š","ť","ú","ů","ý","ž","Á","Č","Ď","É","Ě","Í","Ľ","Ň","Ó","Ř","Š","Ť","Ú","Ů","Ý","Ž") ,
                        Array("a","c","d","e","e","i","l","n","o","r","s","t","u","u","y","z","A","C","D","E","E","I","L","N","O","R","S","T","U","U","Y","Z") ,
                        $text);
        $return = Str_Replace(Array(" ", "_"), "-", $return); //nahradí mezery a podtržítka pomlčkami
        $return = Str_Replace(Array("(",")",".","!",",","\"","'"), "", $return); //odstraní ().!,"'
        $return = StrToLower($return); //velká písmena nahradí malými.
        return $return;
    } 
    $text=str_replace(array("[AND_GLOBAL_CHAR]","[SHARP_GLOBAL_CHAR]","[TAB_GLOBAL_CHAR]"),array("&","#","\t"),$_GET["text"]);
    $text=str_replace(array("\\[","\\]"),array("[","]"),$text);
    echo utf2ascii($text);
?>

Zakaždým keď napíšeš niečo do textboxu, script sa pripojí na check.php, ktorý vráti hodnotu, ktorú script napíše do druhého checkboxu
Edit:
Fixnuté bugy ajaxu v tomto scripte:
- prenášanie #- keď sa do url dosadí text obsahujúci #, url vypadá takto check.php?text=blabla#inytext, teda ako "kotva" na "inytext"
- prenášanie & - keď sa do url dosadí text obsahujúci &, to znamená, že v url je ďalší parameter GET, teda URL vyzerá asi takto: check.php?text=bla&intext
- funkčné prenášanie znaku + (nenahradí sa medzerou - ako to normálne robí)
Medvídek
Profil
FUYO:
Radši bych tu fci přepsal do JS, než s každym stiskem klávesy otravovat server požadavkem.
FUYO
Profil *
díky, bohužel do druhého inputu se nic nenapíše


tedy, pokuď není potřeba odeslat požadavek
SeparateSK
Profil
Ako to? Mne to ide, skús ešte raz, lebo som ten príspevok upravil, mal nejaké bugy :)
FUYO
Profil *
moje chyba, už to funguje, nicméně, když zadám do prvního inputu ahoj světe jak se máš tak do druhýho napíše ahoj-světe-jak-se-máš
Mike8748
Profil
FUYO:
pokud chcete řešení čistě v javascriptu, tak zkuste http://ownroot.net/cool/cool1.php
FUYO
Profil *
Mike8748:
Jo tohle je naprosto parádní, děkuji moc oboum :)
SeparateSK
Profil
Plne prepísané do JS s pridanou funkciou ReplaceArrayJS:
<script>
    function utf2ascii(text) {
        var ret=text;
        var ret =ReplaceArrayJS(new Array("á","č","ď","é","ě","í","ľ","ň","ó","ř","š","ť","ú","ů","ý","ž","Á","Č","Ď","É","Ě","Í","Ľ","Ň","Ó","Ř","Š","Ť","Ú","Ů","Ý","Ž") ,new Array("a","c","d","e","e","i","l","n","o","r","s","t","u","u","y","z","A","C","D","E","E","I","L","N","O","R","S","T","U","U","Y","Z") ,ret);
        var ret = ReplaceArrayJS(new Array(" ", "_"), "-", ret); //nahradí mezery a podtržítka pomlčkami
        var ret = ReplaceArrayJS(new Array("(",")",".","!",",","\"","'"), "", ret); //odstraní ().!,"'
        var ret = ret.toLowerCase(); //velká písmena nahradí malými.
        return ret;
    } 
    function ReplaceArrayJS(farr,sarr,text){
        var fal=farr.length;
        var sal=sarr.length;
        var wArray=true;
        var wText="";
        if(sal==0)
            wArray=false;
        else if(sal==1){
            wArray=false;
            wText=sarr;
        }
        var ntext=text;
        for(var i=0;i<fal;i++){
            for(var j=0;j<text.length;j++){
                if(!wArray)
                    ntext=ntext.replace(farr[i],(wText===undefined)?"":wText);
                else
                    ntext=ntext.replace(farr[i],(sarr[i]===undefined)?"":sarr[i]);
            }
        }
        return ntext;
    }
    function VymazExtraZnaky(val,obj){
        obj.value=utf2ascii(val);
    }
</script>
<input type="text" onkeyup="VymazExtraZnaky(this.value,document.getElementById('out'));">
<input type="text" id="out">
moje riešenie tak narýchlo
Edit:
Mike ma predbehol , keď som to mal rozpísané :)
FUYO
Profil *
paráda, díky moc, teď nevím co je "lepší", to od Mike, funguje tak jak si představuji, a je to kratší kod, ale má nějaký nevýhody?
Mike8748
Profil
SeparateSK:
pravda, muj skriptík nenahrazuje všechno co tvůj, původně byl určen pro přepis titulku stránky na "cool" url a tam se znaky jako #,&,$ apod. nevyskytují (alespoň ne v mém případě)
ale není problém potřebné znaky doplňit do pole nodiac, nahradí je to pak taky :)

FUYO:
skript se liší akorát v seznamu znaků které to nahradí. pokud ti stačí diakritika, tak není problém. pokud chceš ještě jiné znaky nahrazovat, tak do pole nodiac je třeba přípsat kombinace co čím nahradit
SeparateSK
Profil
Zdá sa mi že keď v Mike-eho kóde napíšeš # alebo &, kód na to reaguje tak, že ich vymaže to z URL(chtiec či nechtiac i keď nie sú v poli nodiac), neviem či to je naschvál.
Ale zasa môj kód je dlhý a pri dlhom texte to nejakú chvílku potrvá kôli ReplaceArrayJS funkcií.
FUYO
Profil *
ano já to potřebuji taky na COOL url, tudíž znaky # nebo & nevyužiji

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: