Autor Zpráva
losfiliposss
Profil
Zdravim, potreboval bych poradit. Mam php skript, ktera mi po zpracovani n promennych $x a $y (desetinna cisla). Jsou to souradnice do mapy, ktere se generuji podle mista, ktere je zrovna vyhledavano v databazi. Jak mam tyto promenne pouzit v javascriptu (predpokladam, ze pomoci poli, ale nevim si s tim rady). Kod v javascriptu mam nasledujici:

var x=<?php echo $x; ?>;
var y=<?php echo $y; ?>;
document.write(x);

document.write(y);

Kdyz je vysledek pouze jeden, v poradku se zde promenne vypisou, kdyz je vysledku vic, vypise 0. Mockrat diky za rady
Radek9
Profil
losfiliposss:
Doporučuju pročíst tenhle článek. Jdeš na to principiálně správně. Musíš na straně PHP vytvořit pole souřadnicí a to potom vypsat s pomocí funkce json_encode.
losfiliposss
Profil
Radek9:
Diky, tenhle clanek uz jsem cetl predtim ale porad tomu nejak vubec nerozumim a jsem v koncich :/
jeste se pokusim to rozvest...
mam databazi, kde mam mimo jine sloupec ulice. V php mam kod, ktery vyhledava dle zadanych parametru a pomoci foreach nacita data:
foreach($dotaz as $n)
{...
$ulice=$n['ulice']
...}
dale pak priradim ulici souradnice (napr. if($ulice=="vodickova"){$x=1; $y=1;}
v javascriptu pouzivam funkci google map

var x=<?php echo $x; ?>;
var y=<?php echo $y; ?>; 
var citymap = {
    mista: {
    center: {lat: x, lng: y}
  },
  
}
ale jak mam teda vysledek ulozit do poli a nasledne prenest do javascriptu, aby to fungovalo, pripadne jak ve skriptu docilit, aby se v pripade vice vysledku pripocitavaly a jmenovaly napr. mista1, mista2... ?
Radek9
Profil
losfiliposss:
Nějak takhle:
<?php
$mista = [];
foreach ($dotaz as $n) {
  $ulice = $n['ulice'];
  if ($ulice === "…") {
    $x = …;
    $y = …;
  }
  …
  
  $mista[] = ["center" => ["lat" => $x, "lng" => $y]];
}
?>

<script>
var citymap = {
  mista: <?php echo json_encode($mista); ?>
};
</script>
losfiliposss
Profil
Radek9:
uz to zacinam trochu chapat, ale porad mi to jeste nefunguje a nemuzu prijit na to proc :/
taky je potreba nejak odlisit v javascriptu nazev mista (nesmi se opakovat), napr. cisly a to uz je na me opravdu moc
Radek9
Profil
losfiliposss:
Tak si tam třeba ještě připiš tu ulici:
$mista[] = ["center" => ["lat" => $x, "lng" => $y], "street" => $ulice];

V JS to pak normálně získáš pomocí citymap.mista[index].street
losfiliposss
Profil
Radek9:
ahaaa... a co je ten [index] prosimte?
Radek9
Profil
losfiliposss:
Index v tom poli citymap.mista. Podívej se v prohlížeči na ten vygenerovaný kód. V JS potom můžeš všechna ta místa projít for cyklem:
for (var i = 0; i < citymap.mista.length; ++i) {
  var misto = citymap.mista[i]; // Tady slouží i jako ten index
  document.write(misto.street);
}
losfiliposss
Profil
Radek9:
uz asi chapu, pak to vyzkousim. Diky moc

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: