Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno jQuery AJAX - načítanie PHP a dát z databázy.

Dobrý deň,

$(document).ready(function(){
    $("button").click(function(){
        $("#neco").load("file.php");
    });
});

potreboval by som cez jQuery AJAX spraviť tú vec, že by som použil výstup PHP a ďalej pri interakci mohol meniť súbor ktorý sa má použiť - vytvoriť array, nultý bude defaultne použitý a dalšie sa použijú podla interakce, s tým aby sa mi menila aj URL podla toho ktorý súbor sa načíta... ako to spraviť? (nechcem presný kód, skôr vysvetliť, ako môžte dať aj kód, ale hlavne to chcem pochopiť.)

[img=https://s30.postimg.org/82ct6uta9/screenshot_59.png]https://s30.postimg.org/82ct6uta9/screenshot_59.pn g[/img]

Předmět Autor Datum
Nechceš tam napsat nějaký příklad, jak by se to mělo chovat? Z toho popisu jsem skoro nic nepochopil…
Wikan 02.04.2017 10:00
Wikan
Vysvetlím to kus ináč,... mám index.html v ňom mám v head frameworky jquery, angular,... mám tam l…
Mlocik97 02.04.2017 10:11
Mlocik97
Tak to mi naopak přijde, že jsi to ještě víc zamotal.
Wikan 02.04.2017 10:15
Wikan
tak to poviem ešte inak "ako spraviť to že mám jednu stránku, v nej 2 divy, jeden div zaberá polku d…
Mlocik97 02.04.2017 10:18
Mlocik97
Tohle už je pochopitelnější. Ale vůbec netuším, proč tohle chceš dělat pomocí JS a ne rovnou v PHP.
Wikan 02.04.2017 10:21
Wikan
mhmm, nechcem odpoveď otázku "prečo?", chcem odpoveď na otázku "ako?", vopred ďakujem.
Mlocik97 02.04.2017 10:36
Mlocik97
if (je_den) { $("#neco").load("den.php"); window.history.replaceState('den', 'den', '/den'); } else…
Wikan 02.04.2017 10:39
Wikan
ak to upravým na array takto? var nac = [ default.php, aaa.php, bbb.php ]; if (podmienka) { $("#nec…
Mlocik97 02.04.2017 10:58
Mlocik97
else if (podmínka) Jinak tam nevidím smysl toho pole.
Wikan 02.04.2017 11:01
Wikan
jj, pravda, moje chyba to else if... inak ďakujem. ešte jedna otázka,... či by sa dalo zlepšiť zápi… poslední
Mlocik97 02.04.2017 11:07
Mlocik97

Vysvetlím to kus ináč,...

mám index.html

v ňom mám v head frameworky jquery, angular,... mám tam link rel na CSS, a script na ukotvenie určitých prvkov na webu.
v body mám div a v dive iba script, v tom scripte mám ten kód hore, + by som nejak cez array pridal dalšie "súbory" ktoré sa použijú podobne ako jquery ajax load, s tým že sa použijú za určitej podmienky (napríklad stlačenie tlačítka na stránke), podla toho ktorý stlačím chcem aby sa daný súbor použil (z neho obsah zobrazil na stránke), tie súbory sú php, takže skorej by sa spracovali serverom, a mám takto napríklad zo 5 súborov php, a vždy bude "zobrazený, použitý" iba jeden, a to ktorý bude záležať podla interakce uživatele (na ktoré tlačítko tukne), inak všetkých 5 súborov PHP nemajú v sebe priamo obsah, ale iba nejaký kód, scripty, a iné dalšie PHP súbory sú do týchto cez include začlenené, okrem toho rovnako potrebujem načítať aj určité dáta z databázy, a ja potrebujem spraviť to že ako začleniť array do jQuery ajax, a podla interakce vybrať súbor PHP ktorý sa má použiť. ďalej jde tu ešte o to, že chcem aby sa URL stránky menila podla toho ktorý súbor PHP je použitý, bez toho aby sa načítala znova celá stránka ale len práve ten div, do ktorého má jQuery zobraziť, alebo nepresne načítať obsah zo súboru PHP.
Array by bol tak, že nultý by bol použitý defaultne, a dalšie by sa "použily" podla interakce uživatele. Snaď to už jde chápať.

tak to poviem ešte inak "ako spraviť to že mám jednu stránku, v nej 2 divy, jeden div zaberá polku displeja, druhý div druhú polku, v jednom dive sa niečo načíta, a v druhom:

cez deň by sa načítal napríklad obsah zo súboru "den.php" a v noci by sa načítal zo súboru "noc.php" a po spracovaní serverom výstup (html a JS) by sa začlenil cez jquery ajax do index.html

a zároveň by sa menila aj URL podla načítaného súboru, keď sa načíta súbor den.php tak url by bola neco.sk/den (príklad),... interakce v tomto prípade tvorí čas, samozrejme by to mohlo byť aj zmáčknutie tlačidla aj podla toho ktorý uživatel si zobrazý danú stránku.

ak to upravým na array takto?

var nac = [
    default.php,
    aaa.php,
    bbb.php
];
if (podmienka) {
    $("#neco").load(nac[0]);
    window.history.replaceState('index', 'index', '/index');
} elseif {
    $("#neco").load(nac[1]);
    window.history.replaceState('aaa', 'aaa', '/aaa');
} else {
    $("#neco").load(nac[2]);
    window.history.replaceState('bbb', 'bbb', '/bbb');
}

a teda by som nadefinoval už len podmienku (onclick), môže to byť takto?

jj, pravda, moje chyba to else if... inak ďakujem.

ešte jedna otázka,... či by sa dalo zlepšiť zápis tohto:

var element = document.getElementById('menu1');
function ukotvenie1() {
    var posun1 = (window.pageYOffset || document.documentElement.scrollTop) - (document.documentElement.clientTop || 0);
    if (posun1 > 100)
        {
            element.style.position = 'fixed';
            element.style.top = '0px';
            element.style.width = '100%';
        }
    else
        {
            element.style.position = 'relative';
            element.style.top = '0px';
            element.style.width = '100%';
        }
}
window.onscroll = ukotvenie1;

ako som to doteraz až tak moc neriešil ale teraz ma napadlo či to nejde spraviť tak že by som mal tie styles zapísané v druhom CSS súbore, a pri splnenej podmienke by sa použily styly z archonstyle.css (samozrejme tie ktoré po splnení podmienky sa nemenia by zostávali v prvom súbore...) napríklad ešte mám tam "float: "none";" že by sa načítal z prvého.

ma napadlo to prepísať na:

function ukotvenie1() {
    var posun1 = (window.pageYOffset || document.documentElement.scrollTop) - (document.documentElement.clientTop || 0);
    if (posun1 > 100)
        {
            var head  = document.getElementsByTagName('head')[0];
            var link  = document.createElement('link');
            link href = 'style.css';
        }
    else
        {
            var head  = document.getElementsByTagName('head')[0];
            var link  = document.createElement('link');
            link href = 'archonstyle.css';
        }
}
window.onscroll = ukotvenie1;

//to je ten CSS (2) na obrázku hore//

Zpět do poradny Odpovědět na původní otázku Nahoru