Autor Zpráva
Scofi
Profil
Dobrý den,

poradil by mi prosím někdo, jak do kodu vložit načtení obrázků z xml? Obrázky mám u každé položky v xml jako "<imgurl>....</imgurl>", nevím kde dělám chybu ale buď mi to neudělá nic a nebo mi to ukazujeme chyby.
Mám tento kod, který mi funguje ale bez obrázků:

function GetShopData()"
    {
        $xmlUrl = "stocking-trade-live.xml"; // XML feed file/URL
        $xmlStrUTF8 = file_get_contents($xmlUrl);
        $xmlStr = iconv("UTF-8", "Cp1250", $xmlStrUTF8);
        $xmlObj = simplexml_load_string($xmlStr);
        $arrXml = objectsIntoArray($xmlObj);
        return $arrXml;
    }
       
    function GetMenuItemsMarkup($data)
    {        
        $result = '';
        foreach ($data["category"] AS $i => $cat)
            $result .= "<li id='mi_{$cat["@attributes"]["id"]}'><a href='#'>{$cat["@attributes"]["name"]}</a></li>";
        return $result;
    }
    
    function GetTabs($data)
    {
        $result = '';
        
        foreach ($data["category"] AS $cat)
        {
            $result .= "<div id='tab_{$cat["@attributes"]["id"]}' style='display: none;'>";
            $result .= "<h2>{$cat["@attributes"]["name"]}</h2>";
            
            $result .= "<table class='tblCat'>" .
                "<thead>" .
                "<tr><th style='display:none'>Kód</th><th>Název zboží</th><th>Cena</th><th>Počet ks</th><th>Cena</th></tr>" .
                "</thead>";
                
            $result .= "<tbody>";
            
            foreach ($cat["item"] AS $item)
            {
                $description = array();
                if (!empty($item['desc']) && strlen(trim($item['desc'])) > 0)
                    array_push($description, $item['desc']);
                if (!empty($item['catDesc']) && strlen(trim($item['catDesc'])) > 0)
                    array_push($description, $item['catDesc']);
                
                $result .= "<tr>" . 
                    "<td style='display:none'>{$item['code']}</td>" .
                    "<td style='text-align:left'>";
                if (count($description) > 0)
                    $result .= "<a href='#' class='goodsDetails'>";
                $result .= "<span>{$item['name']}</span>";
                if (count($description) > 0) {
                    foreach ($description as &$descItem)
                        $result .= "<span style='display: none;'>$descItem</span>";
                    $result .= "</a>";
                }
                $result .= "</td>" . 
      
                
                    "<td style='text-align:right'>{$item['price']},-</td>" .
                    "<td><input type='text' id='txtItemCount_{$item['code']}' class='goodsCount' size='4' maxlength='3' /></td>" .
                    "<td style='text-align:right'>0,-</td>" . 
                    "</tr>";
            }

            $result .= "</tbody>" .
                "</table>";

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Darker
Profil
Kod je neprehledny, navic jsi nam ho nezvyraznil...
Nicmene uz na prvnim radku jsou uvozovky na naprosto necekanem miste - mezi argumenty funkce a jejim blokem.
Nevidim nikde zadne stahovani obrazku, a pokud nam sem nehodis odkaz na to XML, ani ti nemuzu poradit, kde ho hledat.
Scofi
Profil
Ty uvozovky v prvním řádku jsou překlep. Odkaz na xml je "stocking-trade-live.xml", stahování obrázku tam právě nemám, to právě chci vytvořit ale nevím jak na to....
Darker
Profil
Scofi:
Odkaz na xml je "stocking-trade-live.xml"
Cist umim. Pokud ti mam rict jak stahovat obrazky, potrebuji znat strukturu toho souboru.
Scofi
Profil
Ten soubor vypadá takhle, je tam jen jedna položka, ve skutečnosti je jich tam víc, pořád stejných pod sebou, jen jiný code, name atd.
Potřebuju docílit toho, aby se mi vedle toho názvu objevil obrázek. Ať jsem dal cokoliv, tak se mi tam objevuje jen vypsaný název obrázku jinak nic.
<?xml version="1.0" encoding="windows-1250"?>


<stockingTrade xmlns="urn:schema">
  <category name="Bill" id="bejli">
<item>
      <code>1</code>
      <name>Nazev</name>   
      <desc>Popis</desc>
      <price>37</price>
      <imgurl>geba.jpg</imgurl>
    </item>
     </item>
  </category>
</stockingTrade>
Darker
Profil
No predpokladam, ze to mas prevedene do pole. Predpokladam take, ze uvedene XML si jen mizerne promazal a ma vypadat takhle:
<stockingTrade xmlns="urn:schema">
  <category name="Bill" id="bejli">
    <item>
       <code>1</code>
       <name>Nazev</name>   
       <desc>Popis</desc>
       <price>37</price>
       <imgurl>geba.jpg</imgurl>
    </item>
  </category>
</stockingTrade>

Takze po prevedeni na pole bych cekal adresu obrazku v takovehle promenne:
$arrXML["stockingTrade"]["category"]["item"][$i]["imgurl"]

Kde $i je libovolne cele cislo v intervalu <0;delka pole $arrXML["stockingTrade"]["category"]["item"])
Samozrejme, format pole se muze lisit, v zavislosti na tom, jak pracuje funlce, kterou pouzivas.
Scofi
Profil
Tak ať se snažím jak chci, tak obrázek nikde, někde tam musím mít chybu ale netuším kde, i tak díky za snahu mi poradit.
Scofi
Profil
pořád mi to vypisuje jen název toho obrázku, jinak nic
okolojdouci
Profil *
Scofi:
pořád mi to vypisuje jen název toho obrázku, jinak nic

Toto je vypsaný název obrázku:
geba.jpg

Toto je kód pro zobrazení obrázku:
<img src="geba.jpg">
Scofi
Profil
A tento kod mám dát do xml? To je kod do html nebo ne? Protože tohle když dám do toho mého xml, tak mi to ukazuje chybu...
okolojdouci
Profil *
Scofi:
A tento kod mám dát do xml? To je kod do html nebo ne? Protože tohle když dám do toho mého xml, tak mi to ukazuje chybu...

xml není určeno k zobrazování obrázků, ale k předávání dat. V databázích taky běžně nemáš uložené obrázky.
Předpokládal bych, že v tom xml třeba z webu na web předáváš data a že v tom jsou adresy nějakých obrázků, ale nikoliv obrázky. Je možné, že xml může obsahovat i binární data (to ostatně databáze taky), ale to by jeho zpracování trochu zkomplikovalo.
Scofi
Profil
Aha, tak já se celou dobu snažím o něco co mi stejně nepůjde, no já mám v tom xml data jak říkáš a tam je třeba název a vedle něj by měl být obrázek, jak tedy ale ten obrázek dostat do těch stránek, aby byl vedle dat, který načítám z xml? Jde to nějak?
okolojdouci
Profil *
Scofi:
tam je třeba název a vedle něj by měl být obrázek

Nejdřív si ujasni, jestli tam adresa toho obrázku opravdu je.
Jestli je, tak máš dvě možnosti. Buď dáš na web obrázek z jejich webu:
<img src="adresa/nazevsouboru.jpg">

kde adresa musí být absolutní.

Nebo to uděláš slušně : ten obrázek si z toho jejich webu zkopíruješ k sobě a pak dáš do své stránky adresu té své kopie. Ale ten postup by byl o dost náročnější.
Scofi
Profil
Z jakýho jejich webu? Mám svůj obrázek, který chci vložit do svých stránek, kde část informací načítám z xml a vedle těch dat chci mít obrázek. Nějak teda nechápu, co jsi mi tady napsal....
okolojdouci
Profil *
Scofi:
Z jakýho jejich webu? Mám svůj obrázek, který chci vložit do svých stránek, kde část informací načítám z xml a vedle těch dat chci mít obrázek.

Trochu začínám pochybovat, že ti rozumím.
Mohl bys vysvětlit, k čemu to xml používáš? A pokud s tím ten obrázek nesouvisí a chceš ho do té vytvořené stránky prostě přidat, proč to sem vůbec motáš? Máš jasno v tomto?

- formát xml je běžně určen k předávání dat mezi weby
- soubory php umožňují programování (a mj. třeba načítání a zpracování dat z xml) // příležitost vrazit tam třeba obrázek
- formát html je něco, co odchází do prohlížeče, ať už jde o statický soubor, nebo to, co je vygenerováno z php
Scofi
Profil
Zkusím to líp vysvětlit: v xml mám položky e-shopu(název, popis, cena...), tohle xml načtu pomocí php do stránek, tam pak výsledně mám tu tabulku zboží ale vedle názvu zboží chci mít obrázek, když ho tam vložím pomocí php, tak ho tam sice mám ale není v té tabulce zboží vedle názvu, je někde nahoře nebo dole, prostě jinde než potřebuju.

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:

0