Autor Zpráva
Hajaxa
Profil
Zdravím, mám jednoduchou funkci pro přidávání oblíbených položek pomocí Ajaxu, php a js.
Vše funguje do té doby, než chci změnit text pro přidání a odebrání na obrázek.

Texty Přidat do oblíbených a Odebrat z oblíbených jsem se pokoušel změnit na obrázky, bohužel ve finále se nemění obrázek na druhý obrázek. U textu vše funguje bez problému.

define("PRIDAT", 'Přidat do oblíbených');
define("ODEBRAT", 'Odebrat z oblíbených');

define("PRIDAT",  '<img src="http://cdn1.iconfinder.com/data/icons/cc_mono_icon_set/blacks/48x48/delete.png"/>');
define("ODEBRAT",  '<img src="http://cdn1.iconfinder.com/data/icons/cc_mono_icon_set/blacks/48x48/heart.png"/>');


JS:
// Přidání do oblíbených
function AddFav() {
    $.ajax({
        url: SITE_URL+'/funkce/oblibene/ajax/oblibene.php',
        type: 'POST',
        data: "id=" + ID
    });
    if ($('#oblibene a').html() == ODEBRAT) {
        $('#oblibene a').html(PRIDAT);
    }
    else {
        $('#oblibene a').html(ODEBRAT);
    }
}


PHP:
define("PRIDAT", 'Přidat do oblíbených');
define("ODEBRAT", 'Odebrat z oblíbených');

define("PRIDAT",  '<img src="http://www.iconfinder.com/icondetails/42212/48/black_cross_close_delete_icon"/>');
define("ODEBRAT",  '<img src="http://cdn1.iconfinder.com/data/icons/cc_mono_icon_set/blacks/48x48/heart.png"/>');

// Přidání do oblíbených
if ($uzivatel['lstatus'] == 1) {
    $user_fav_yet = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM oblibene WHERE uzivatel_id='$uzivatel[id]' AND polozka_id='$id'"), 0);
    if ($oblibeno >= 1) {
        $game['oblibena_polozka'] = '<div id="oblibene "><a href="#">'.ODEBRAT.'</a></div>';
    }
    else {
        $game['oblibena_polozka'] = '<div id="oblibene "><a href="#">'.PRIDAT.'</a></div>';
    }
}
else {
    $game['oblibena_polozka'] = '<a href="'.$uzivatel[' neprihlasen'].'">'.PRIHLASIT.'</a>';
}

Děkuji za rady.
aDAm
Profil
Definovanou konstantu nelze měnit. Jakmile jednou konstantu zadefinuješ tak to tam bude až do konce.
Jan Tvrdík
Profil
Hajaxa:
Máš špatně zadanou adresu v PRIDAT (linkuješ stránku, ne obrázek).
Hajaxa
Profil
Jan Tvrdík:
Adresa na obrázek, která je zde uvedena je pouze ukázková ze stránky Iconfinder. Na webu pak jsou samozřejmě funkční obě dvě adresy.

Nezná tedy někdo nějaký způsob, jak tento problém vyřešit?
Zkoušel jsem místo dvou konstant dát pouze html prvek (img), to ovšem nefunguje.
aDAm
Profil
Jak jsem psal, obsah konstanty nemůžeš měnit, takže místo konstanty budeš muset použít nějakou proměnnou která už přepisovat jde.
Hajaxa
Profil
aDAm: Nepřepisuji obsah konstanty, pouze přes JS měním z jedné konstanty na druhou (po kliknutí atd...)
U textu funguje vše v pohodě, ale když do dvou konstant vložím místo textu obrázek, nefunguje to.

Pokouším se chybu najít, bohužel marně.
// Přidání do oblíbených
function AddFav() {
    $.ajax({
        url: SITE_URL+'/funkce/oblibene/ajax/oblibene.php',
        type: 'POST',
        data: "id=" + ID
    });
    if ($('#oblibene a').html() == ODEBRAT) {
        $('#oblibene a').html(PRIDAT);
    }
    else {
        $('#oblibene a').html(ODEBRAT);
    }
}



Problém nalezen, nyní potřebuji problém vyřešit:

Za PRIDAT jsem dosadil <span></span>
Za ODEBRAT jsem dosadil <div></div>

Vše funguje, jako při textu.

-----

Nyní nastává problém. Po přidání <img> tagu je tlačítko nefunkční (cesty k obrázkům jsou samozřejmě funkční).

Za PRIDAT jsem dosadil <span><img src="/images/pridat.png"/></span>
Za ODEBRAT jsem dosadil <div><img src="/images/odebrat.png"/></div>

Díky za rady


Update: Vyřešeno.
Problém byl v uzavřeném <img> tagu />.
<img src="/images/odebrat.png"/>
Po odstranění lomítka vše funguje jak má.
aDAm
Profil
a ty dvě identické konstanty na začátku jsou co? Jen tak z plezíru?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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