Olen tallentanut tietokantaa uutisia, joissa jokaisella on taulussa id, otsikko, uutinen ja paivays.
Tulostan etusivulla vain otsikon 3 uusimmasta uutisesta. Käyn läpi taulun komennolla
$otsikko = mysql_fetch_row($kysely);
Haen esimerkiksi otsikon
$otsikko[1];
Lue lisää -linkin takaa pitäisi avautua näille kolmelle popup, jossa lukee vain tämän uutisen tiedot (otsikko, uutinen).
Miten saan avattu popupiin oikean uutisen tiedot?
Tulostan etusivulla vain otsikon 3 uusimmasta uutisesta. Käyn läpi taulun komennolla
$otsikko = mysql_fetch_row($kysely);
Haen esimerkiksi otsikon
$otsikko[1];
Lue lisää -linkin takaa pitäisi avautua näille kolmelle popup, jossa lukee vain tämän uutisen tiedot (otsikko, uutinen).
Miten saan avattu popupiin oikean uutisen tiedot?
Vastaukset 11
Vanhimmat
popup-uutista varten oma sivu (popup.php).
Tämän sivun avaat javascriptillä (window.open) ja välität uutisen id:n samalla popup.php sivulle. Popup.php:ssä haet uutisen id:llä.
function newspopup(id){
window.open("popup.php?id=" id,"npopup", "height=200,width=400,status=yes,toolbar=no,menubar=no,location=no");
}
Eli tuleeko tässä tapauksessa id hakea $otsikko[0] -komennolla tyyliin
function newspopup(){
window.open("popup.php?id="
käytät varmaan jotain silmukkaa kun haet/kirjoitat ne uutiset etusivulle(?). Tee samassa silmukassa myös linkit ->
echo "Lue lisää";
uutisen id siis vaihtuu joka kierroksella. Ja jokainen linkki käyttää tuota samaa javascript-funktiota.
While-silmukassa haen. Toi ei jostain syystä toimi ->
echo "Lue lisää";
Buttonilla tein ja uusi ikkuna avautuu, mutta se ei osaa hakea id:tä ollenkaan ja näin näyttää tyhjän sivun. Tarvitsenko javascript-koodissa hakea $otsikko[0] ollenkaan? Miten saan upotettua php:tä javascritpin sekaan?
function newspopup(id){
window.open("popup.php?id=" id,"npopup", "height=200,width=400,status=yes,toolbar=no,menubar=no,location=no");
}
Eli tuossa id:n tilalle $otsikko[0]? Tänään taas ei kule ollenkaan...
Js-funktiossa ei tarvitse id:tä enää hakea , riittää kun linkissä on kutsu ja sitä kautta id välittyy. Js-funktio tulee olla tietenkin sivun head osiossa - tagien välissä.
Tässä rivillä oli virhe, sori. Nyt korjattu (risuaita tulee myös lainausmerkkeihin):
echo "Lue lisää";
vielä javascript-osiosta, tuleeko sinne todella näin
window.open("popup.php?id=" id, jne...
vai tarkoitatko, että id kohtaan tulee jotain muuta?
kyllä, - merkki liittää funktion saaman uutisen id:n popup-ikkunan osoitteeseen.
oh, linkkikin oli näköjään väärin eli tässä toimiva:
echo "Lue lisää";
ok, ja sitten popup.php -tiedostossa haen tiedot tietokannasta eli
$query = "select id, otsikko, uutinen, paivays from tiedot where id=$id";
print $otsikko;
print $uutinen;
print $paivays;
vai mitenkäs?
Toi etusivulla oleva
echo "Lue lisää";
palauttaa 1, 2 tai 3. Javascriptissä kutsutaan kuitenkin id:tä
function newspopup(id){
window.open("popup.php?id=" id jne...
Onko se oikein? Mistä javascript osaa etsiä ton id:n?
juuri noin, ota kuitenkin alussa id erilliseen muuttujaan osoitteesta:
$uutisid = $_GET['id'];
ja käytä tuota muuttujaa hakulausekkeessa.
Uutisen voit hakea vaikka taulukkoon:
($uutinen = mysql_fetch_row($kysely))
ja tulostaa tiedot sitten siitä.
Javascript osio on oikein. Kysymys on muuttujasta, funktio ottaa parametriksi id:n, eli sinun tapauksessa uutisen id:n ja asettaa sen id:n popup ikkunan polkuun.
*echo "Lue lisää";*
echo "Lue lisää";
echo 'Lue lisää';
Nyt toimii, kiitos paljon Ruussi avusta.