Klávesnice zdarma Klávesnice zdarma
Pořádné programy s pořádnou klávesnicí zdarma. Více zde
Pouze tento týden sleva až 80 % na C# .NET

Diskuze: PHP GET odesilani proměnných

PHP PHP PHP GET odesilani proměnných American English version English version

Aktivity (1)
Avatar
Petr Hrtáň
Člen
Avatar
Petr Hrtáň:17.6.2018 13:12

Ahoj, potřeboval bych dostat proměnne ze stránky send.php, která získává počet řádku z mysql. Skript je pousten každých 20s pomocí javascriptu. Tzn. že mi napíše počet řádků. Potřebuji, aby se mi metodou GET přenesla tato hodnota do stranky vystup.php

Zkusil jsem: $rows je vrácená hodnota z DB.
Zkoušel jsem do skriptu send.php umístit echo <a href="vystup.php?radek=,$rows,"></a>;

 
Odpovědět 17.6.2018 13:12
Avatar
Šimon Rataj
Člen
Avatar
Šimon Rataj:17.6.2018 14:41

A co dělá ten tvůj pokus?

 
Nahoru Odpovědět 17.6.2018 14:41
Avatar
dokanscze
Člen
Avatar
dokanscze:17.6.2018 16:00

Jestli jsem pochopil správně co máš za problém, tak tvoje řešení vypada nějak takhle:

Tohle je jakým zbusobem posíláš data, ale spíš bych použil něco jako ajax requesty na tvuj server

$rows = 10;

echo "<a href = 'vystup.php?radky=$rows'>Tvuj odkaz</a>";

A takhle bys k nim pak přistupoval, v mém případě je jen echuju

echo $_GET['radky'];

Popřípadně bys mohl je zvážit dávat jako hidden input do formu a ten pak posílat

echo("
<form action='vystup.php' method='get'>
<input type='hidden' name='radky' value=$radky>
<input type='sumbit'>
</form>
");

Ale to už je záleží na praktickém užití

Editováno 17.6.2018 16:00
 
Nahoru Odpovědět 17.6.2018 16:00
Avatar
Petr Hrtáň
Člen
Avatar
Odpovídá na dokanscze
Petr Hrtáň:18.6.2018 6:38

Ahoj, děkuji za odpověď. Přesně nějak takhle to mám napsané. Co ale potřebuji je to, že skript je automaticky spostem javascriptem. Nikde jej nezobrazuji a potřeboval bych a by tu hodnotu řádku přenesl do vystup.php.

Jednoduše řečeno.Každých 5s načti počet řádků v DB a pošli na stránku vystup.php

 
Nahoru Odpovědět 18.6.2018 6:38
Avatar
dokanscze
Člen
Avatar
dokanscze:18.6.2018 23:56

Tak to by se řešilo pomocí JS a ajax requestů, sám v tom moc nejsem zběhlý, ale něco jsem ti napsal. Je to asynchronií funkce (běží mimo hlavní běh stránky), posíla dotaz na stránku "getData.php" ta pak echuje výsledek ať už se jedná o JSON nebo jen string (v mém přiadě je to stavené jen na string).

Ale tento kód nemusí běžet na všech prohlížečích, jedná se o relativní novinku v JS.

Dále bych pak spíš použil neco jako JQuery pro vytváření elementů v documentu a i samotne ajax requesty se stanou mnohem jednoduší

async function getData() {
    let response = new XMLHttpRequest();
    response.onreadystatechange = function () {
        if (this.readyState === 4 && this.status === 200) {
            let createA = document.createElement('a');
            let createAText = document.createTextNode("Data");
            let text = "load.php?radky=" + this.responseText;
            createA.setAttribute('href', text);
            createA.appendChild(createAText);
            document.getElementById('data').appendChild(createA);
            document.getElementById('data').appendChild(document.createElement("br"));
        }
    };

    response.open("GET", 'getData.php', true);
    response.send();

    setTimeout('', 5000);
    return getData();
}

PS: Jestli nevíš co přesně je Ajax tak tady na ITNetworku je o tom i tutoriál https://www.itnetwork.cz/…vod-do-ajaxu

 
Nahoru Odpovědět 18.6.2018 23:56
Avatar
dokanscze
Člen
Avatar
dokanscze:19.6.2018 0:21

Tak ještě přidávám snad lepší kód který by měl fungovat všude

 function getData() {
    let response = new XMLHttpRequest();
    response.onreadystatechange = function () {
        if (this.readyState === 4 && this.status === 200) {
            let createA = document.createElement('a');
            let createAText = document.createTextNode("Data");
            let text = "load.php?radky=" + this.responseText;
            createA.setAttribute('href', text);
            createA.appendChild(createAText);
            document.getElementById('data').appendChild(createA);
            document.getElementById('data').appendChild(document.createElement("br"));
        }
    };

    response.open("GET", 'getData.php', true);
    response.send();


    setTimeout(getData, 5000);
}
 
Nahoru Odpovědět 19.6.2018 0:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.