Autor Zpráva
Fisak
Profil
Dobrý den. Mám kód na vypsání url cesty do JS kódu.. když dam někam <?php return MoveMapImg(); ?> tak se mi to vypíše normálně ale jak mile to dám do JS tak se nic nestane a vůbec mi ten JS nefunguje... Nevíte čím by to mohlo být?
function MoveMapImg($x = 0, $y = 0) {

        $uss_textures_sql = DB::query("SELECT * FROM [ch_users_characters] where [id] = %i", "1", "%lmt", "1")->fetchAll();
        foreach ($uss_textures_sql as $n => $row_textures) {

        $border_top = $row_textures->position_y - 9 + $y;
        $border_bottom = $row_textures->position_y + 9 + $y;
        $border_left = $row_textures->position_x - 5 + $x;
        $border_right = $row_textures->position_x + 5 + $x;

        $map_textures = DB::query("SELECT [img_id] FROM [ch_map] where [position_z] = %i", $row_textures->position_z, " and [position_y] <= %i", $border_bottom, " and [position_y] >= %i", $border_top, " and [position_x] <= %i", $border_right, " and [position_x] >= %i", $border_left, "ORDER BY position_x")->fetchAll();
        $i = 0;
        foreach ($map_textures as $n => $row_map_txt) {
        $i++;
        $maps_sql = DB::query("SELECT [url_img] FROM [ch_map_img] where [id] = %i", $row_map_txt->img_id);

        echo "&p".$i."=".$maps_sql->fetchSingle('url_img');

        }
        }

      }

      
?>

<script>
//kdyz pujdu nahoru
$('<img/>').attr('src', './../../game/components/background-game.php?position=0<?php return MoveMapImg(0, -1); ?>').load(function() {
   $('body').css('background-image', "url(./../../game/components/background-game.php?position=0<?php return MoveMapImg(); ?>)");
});
//kdyz pujdu dolu
$('<img/>').attr('src', './../../game/components/background-game.php?position=0<?php return MoveMapImg(0, +1); ?>').load(function() {
   $('body').css('background-image', "url(./../../game/components/background-game.php?position=0<?php return MoveMapImg(); ?>)");
});
//kdyz pujdu doleva
$('<img/>').attr('src', './../../game/components/background-game.php?position=0<?php return MoveMapImg(-1, 0); ?>').load(function() {
   $('body').css('background-image', "url(./../../game/components/background-game.php?position=0<?php return MoveMapImg(); ?>)");
});
//kdyz pujdu doprava
$('<img/>').attr('src', './../../game/components/background-game.php?position=0<?php return MoveMapImg(+1, 0); ?>').load(function() {
   $('body').css('background-image', "url(./../../game/components/background-game.php?position=0<?php return MoveMapImg(); ?>)");
});
</script>

<style>
body {
 background-repeat: no-repeat;
 background-position: center;
 background-attachment:fixed;
 background-color:#FFFFFF;
}
</style>
Zechy
Profil
Protože *.js soubory nepřekládá PHP parser a stáhnou se ze serveru tak, jak jsi je tam nahrál. A ve chvíli, kdy je v JS chyba, se automaticky neprovede - V tomto případě je chybou PHP.
Fisak
Profil
no jako jedině že by byla chyba v tom background-game.php protože jinak mi tenhle kód jinde funguje..
viz. background-game.php:
<?php
//Create transparent PNG Canvas
$im = imagecreatetruecolor(1920, 980);

$white = imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $white);
//End Canvas



$vel = 112;

for ($i = 1; $i <= 209; $i++) { 

    $url = "./../../images/textures/".$_GET["p".$i].".jpg";

    $image = imageCreateFromjpeg($url);

    imageCopyMerge($im, $image, $i, $a, 0, 0, $vel, $vel, 100);
    
}


////-----------------------------------------------///////////////////

Header ("Content-type: image/jpeg"); 

//This will create the image!
Imagejpeg ($im);

ImageDestroy ($image);        
peta
Profil
Fisak:
V druhem kodu zadny javascript neni.

Javascript umi spustit jen prohlizec uzivatele. Php umi prelozit do html jen server. Webovy prohlizec neumi spoustet php kod, jen html.
Prvni kod ti tedy udela co? Na serveru projde pres php apache, ten vyrobi html kod a odesle ze serveru uzivateli. Uzivatel dostane html kod (html,css,js). Tudiz, js funkce zadny php kod provest nemuze, kdyz ho nedostane. Ale muzes pouzit ajaxove reseni, odeslat si pozadavek na server o data pomoci skryteho iframu nebo javascript httprequest nebo pouzit jquery knihovnu pro zjednoduseni js zapisu pozadavku.
Mimo to, misto return tam melo byt asi echo.
Fisak
Profil
peta:
o čem to mluvíš? Sis asi spletl příspěvek ne? Mluvíš o ajaxu ale tady je jednoduchej výpis dat do funkce která se pak vypíše do JS jako adresa.. zkus si přečíst nejdřív ten kód potom prosím něco napiš.. Principy PHP a JS znám ..
preca1
Profil
Fisak:
Já to taky ze začátku pochopil trochu jinak, musel sem si to přečíst ještě jednou.
petou zmiňované echo nepomohlo?
Fisak
Profil
preca1:
No mě už se to do té adresy vepše jen bohužel to nepobírá ten background-game.php:

<?php
//Create transparent PNG Canvas
$im = imagecreatetruecolor(1920, 980);
 
$white = imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $white);
//End Canvas
 
 
 
$vel = 112;
 
for ($i = 1; $i <= 209; $i++) { 
 
    
$url = "./../../images/textures/".$_GET["p".$i].".jpg";
    
    $sirka = "112";

   $vyska = "112";

    $image = imageCreateFromjpeg($url);
 
    imageCopyMerge($im, $image, $sirka, $vyska, 0, 0, $vel, $vel, 100);
    
}
 
 
////-----------------------------------------------///////////////////
 
Header ("Content-type: image/jpeg"); 
 
//This will create the image!
Imagejpeg ($im);
 
ImageDestroy ($image);


stále se mi nechce vygenerovat obrázek..
peta
Profil
Fisak: #7 Co to ma spolecneho s kodem nahore? Co je s novym kodem za problem? Proc se to jmenuje background-game.cphp ? Proc na radku 20 neni strednik? $vyska = "112";.
Zkousel jsi si zapnout error_reporting? (bude treba u toho zakomentovat radek 31 s header()) Jake chyby to pise?
A co to echo, jak jsem to zminl na konci #4 a preca1 v #6, pomohlo to?
O tom ajaxu netusim, jak na tom jsi, ale dotaz je napsany tak, ze jsem se pro jistotu o tom zminil, protoze 2/3 zacatecniku s tim maji problem.
pcmanik
Profil
peta:
Už po druhý kráť ti hovorím, že javascript vie bežat aj na servery, je na to knižnica node.js.
Fisak
Profil
peta:
No řikám že problém je u výpisu toho obrázku nikoli už v tom výpisu té adresy.. viz. [#7]
_es
Profil
Fisak:
Tvoj kód je asi príliš nezmyselný a chaotický na to, aby ti s tým niekto konkrétnejšie poradil.
peta
Profil
pcmanik: A? Jak to souvisi se zdejsim problemem? Myslis, ze vsichni ted zacneme pouzivat js i na serveru? Pouziva to vubec nekdo? Je ten nekdo vetsina? Tak to sem neplet.

Fisak:
* zakomentuj radek 31
* pred radek 2 vloz
@ini_set('error_reporting', E_ALL|E_STRICT);
@ini_set("display_errors", "1");
error_reporting(E_ALL|E_STRICT);
* na radek 17
echo $url;
* na radek 24
$bool =  imageCopyMerge($im, $image, $sirka, $vyska, 0, 0, $vel, $vel, 100);
echo $bool*1;
*na radek 34
$bool = Imagejpeg ($im);
echo $bool*1;
* na radek 13 bych dal mozna jen 1 az 2 a ne 209, nez ten kod budes mit odladeny.
A mimochodem, ti tam schazi destroy $im;
Fisak
Profil
peta:
A mimochodem, ti tam schazi destroy $im;
ř.č. 36 ImageDestroy ($image);
jinak to ostatní zkusím a pak jsem napíšu
_es
Profil
Fisak:
JS časť toho kódu nedáva zmysel.

Principy PHP a JS znám ..
Asi nedostatočne.
Fisak
Profil
_es:
Proč myslíš?
pcmanik
Profil
peta:
Súvisí to s tým, že podávaš nepravdivé informácie a ja som ťa opravil. Mojou úlohou ťa nieje presviedčať o pravde. Ak chceš vedieť kto to používa stačí si to vyhladať, je to robota na pár sekúnd. Použivajú to velikáni ako napr. Microsoft, LinkeIn, Ebay, Yahoo a ďalší....
Za to, že ty si o danej technológii ešte nepočul, tak ju nezatracuj.

Takže keď chceš argumentovať, argumentuj tak aby to dávalo zmysel.
_es
Profil
Fisak:
Proč myslíš?
Lebo to je očividné. Z toho, s akou frekvenciou „chrlíš“ dotazy, z ktorých vyplýva, že máš problém pochopiť, čo a kedy prebieha v prehliadači, a čo a kedy prebieha na serveri.
peta
Profil
Fisak:
$im = imagecreatetruecolor(1920, 980);
$image = imageCreateFromjpeg($url);
ImageDestroy ($image); // destroy $image
// ??? destroy $im
„A mimochodem, ti tam schazi destroy $im;“
Ale to byla spis jen poznamka, kdyz chces byt dusledny. Php by si melo obvykle samo pamet uklidit.
Fisak
Profil
peta:
fungovalo mi to i bez toho no. Jen problém byl že to bylo pomalé. Ale už je to vyřešeno tvým řešením s tabulkami.
peta
Profil
S tabulkami ma problem starsi IE, vykreslovani, pokud ji nemas nastavenou v css na fixed, tak to dlouho prepocitava rozmery bunek.
Fisak
Profil
peta:
Koukal jsem :-/ ale to ještě nějak spravím snad.. je to pořád lepší řešení než tohleto si myslím..

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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