Autor | Zpráva | ||
---|---|---|---|
Alda Profil * |
#1 · Zasláno: 6. 8. 2014, 02:50:31
Zdravím,
mohl by mi někdo poradit jak dostat MYSQL data do JavaScriptu? Zkoušel jsem se to takto <?php .... $con = @mysql_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password, $mysql_db_database); if (!$con) { trigger_error('Could not connect to MySQL: ' . mysql_connect_error()); } $json = array(); $sql = "SELECT * FROM markers"; $result = mysql_query($con, $sql); while($obj = mysql_fetch_array($result)) { $json[] = $obj; } ?> <script> function initialize() { var MYSQLdatas = <?php json_encode($json) ?>; ..... } </script> ale když se snažím vypsat hodnoty, tak mi to nevypíše nic. Jak mám procházet tím objektem? Zkoušel jsem to pomocí MYSQLdatas[index].nazevSloupce a to my právě nevypsalo nic. Mohl by mi někdo poslat nějaké řešení? Děkuji za odpověď |
||
_es Profil |
#2 · Zasláno: 6. 8. 2014, 07:13:40
Alda:
Asi by bolo dobré si v zdrojovom kóde v prehliadači pozrieť, čo PHP skript vygeneroval. |
||
Alda Profil * |
#3 · Zasláno: 6. 8. 2014, 12:26:35
PHP vrací tohle
string(431) "[{"0":"1","id":"1","1":"balabfldf","name":"ddjfbdvldjfd","2":"lorem ipsum,"address":"lorem ipsum","3":"13.695411","lat":"13.695411","4":"50.504982","lng":"50.504982","5":"default","type":"default"},{"0":"2","id":"2","1":"bldjfldfbdfl,"name":"bfkdjflhdlbadlf","2":"lorem ipsum,"address":"lorem ipsum","3":"16.524458","lat":"16.524458","4":"48.981186","lng":"48.981186","5":"default","type":"default"}]" javascriptu to předávám takto var markers = <?php echo json_encode($json); ?>; var markers1 = JSON.parse(markers); alert(markers1[0].lat); |
||
Chamurappi Profil |
#4 · Zasláno: 6. 8. 2014, 12:30:06
Reaguji na Aldu:
Jestli jsem to správně pochopil, proč voláš JSON.parse na něco, co není řetězec, ale už hotové JS pole? V markers už je to, co bys chtěl dávat do markers1 , ne?
|
||
Alda Profil * |
#5 · Zasláno: 6. 8. 2014, 12:38:37
Protože mi nefungovalo ani, když jsem zadal
markers[0].lat proto jsem zkoušel ještě zavolat JSON.parse() a jako parametr jsem předal to co mám v proměnné markers, jestli mi to nevyřeší ten problém. Bohužel nevyřešilo. |
||
_es Profil |
#6 · Zasláno: 6. 8. 2014, 12:57:13
Alda:
Nejako to zamotávaš a nepíšeš dostatočne presne a zrozumiteľne v čom je vlastne problém. V [#1] píšeš o premennej MYSQLdatas , máš tam nejakú funkciu initialize (Niekde ju voláš? Ako?). Potom je zrazu problém s nejakou inou premennou. „PHP vracia“ znamená presne čo? To, čo bude vo výsledku nahradené za <?php json_encode($json) ?> , alebo niečo iné? Včítane toho string(431) a aj prvej a poslednej úvodzovky? „Nefungovalo“ znamená presne čo? Skús problém obmedziť na problém len v JS, aby v tom nebolo „zamontované“ PHP a MySQL.
|
||
Chamurappi Profil |
#7 · Zasláno: 6. 8. 2014, 13:06:00
Reaguji na Aldu:
Funkce json_encode by se měla postarat o správné převedení do JS objektu. K tomu mi ale nepasuje, že v JSONu uvedeném v příspěvku [#3] jsou syntaktické chyby, konkrétně tam chybí ukončovací uvozovky:
"name":"ddjfbdvldjfd","2":"lorem ipsum,"address" "1":"bldjfldfbdfl,"name":"bfkdjflhdlbadlf" |
||
Alda Profil * |
#8 · Zasláno: 6. 8. 2014, 13:14:10 · Upravil/a: Alda
_es:
PHP vrací tohle [{"0":"1","id":"1","1":"balabfldf","name":"ddjfbdvldjfd","2":"lorem ipsum,"address":"lorem ipsum","3":"13.695411","lat":"13.695411","4":"50.504982","lng":"50.504982","5":"default","type":"default"},{"0":"2","id":"2","1":"bldjfldfbdfl,"name":"bfkdjflhdlbadlf","2":"lorem ipsum,"address":"lorem ipsum","3":"16.524458","lat":"16.524458","4":"48.981186","lng":"48.981186","5":"default","type":"default"}] to jsem si uložil do javascript pole dejme tomu s názvem MYSQLdatas Nefunguje, znamená to, že když jsem chtěl například vypsat 50.504982 pomocí, tak jsem chtěl použít výpis pomocí document.write(MYSQLdatas[0].lng) Chamurappi: Tady jsou zdrojové kódy https://www.dropbox.com/s/g7um00fme3gq2ct/net2ftp-1407323880.zip Živá ukázka je tady (pokud se nesnažím vypsat data) a tady (pokud se snažím vypsat data). Nad mapou je vždy výpis PHP proměnné pomocí var_dump |
||
_es Profil |
#9 · Zasláno: 6. 8. 2014, 13:55:48
Alda:
„a tady (pokud se snažím vypsat data).“ No a keď tam vymažeš var markers1 = JSON.parse(markers) a zmeníš alert(markers1[0].lat); na alert(markers[0].lat); , tak ti to (snáď) pôjde.
> tak jsem chtěl použít výpis pomocí document.write(MYSQLdatas[0].lng)
> ale nevypsalo mi to na stránku nic. Viď Časté potíže, zajímavosti a poučné debaty » Psaní metodou document.write po načtení stránky maže stránku.
|
||
Chamurappi Profil |
#10 · Zasláno: 6. 8. 2014, 14:37:12
Reaguji na Aldu:
„tady (pokud se snažím vypsat data)“ Tam to teď funguje. Předpokládám, že už jsi to asi opravil podle rady od _es… Reaguji na _es: Kdyby používal document.write po načtení stránky, pravděpodobně by si nestěžoval, že se nevypsalo nic, ale že mu to zrušilo stránku.
|
||
Alda Profil * |
#11 · Zasláno: 7. 8. 2014, 20:04:23
Už mi to funguje. Napsal jsem si ten javascript-ový a PHP kód od znova a už mi to fungovalo.
Ale děkuji za rady |
||
Časová prodleva: 11 let
|
0