Autor | Zpráva | ||
---|---|---|---|
fotohemalacz Profil |
#1 · Zasláno: 9. 1. 2011, 16:44:04
Hezký den, jako začátečník zkouším využití AJAX pro spuštění skriptu php a zapsání do databáze. Potřebuji php skriptu předat pole čísel vytvořené v javscript, můj následující pokus končí s "parse error", nevidíte prosím někdo kde je syntaktická chyba? Díky
část javascriptové funkce: var XMLHttpRequestObjekt = false; if (window.XMLHttpRequest) {XMLHttpRequestObjekt = new XMLHttpRequest();} else if (window.ActiveXObject) {XMLHttpRequestObjekt = new ActiveXObject(”Microsoft.XMLHTTP”);} // ZDE JE HLÁŠENA CHYBA SyntaxError: Parse error var input= fotky_do_alba; var cilovyDiv = document.getElementById(”test”); if(XMLHttpRequestObjekt) {XMLHttpRequestObjekt.open(”POST”,”ZapisAlbum.php”, true); XMLHttpRequestObjekt.setRequestHeader(’Content-Type’,‘application/x-www-form-urlencoded’); XMLHttpRequestObjekt.onreadystatechange = function(){ if (XMLHttpRequestObjekt.readyState == 4 && XMLHttpRequestObjekt.status == 200) { var obsah=XMLHttpRequestObjekt.responseText;} } XMLHttpRequestObjekt.send(”pole=”+input.value);} } ZapisAlbum.php: <?php include 'dbs.php'; $fotky_do_alba = $_REQUEST["pole"]; function ZapisAlbum ($poleid) { echo($poleid[1]); } PripojDBS(); ZapisAlbum($fotky_do_alba); ?> |
||
Tori Profil |
#2 · Zasláno: 9. 1. 2011, 16:51:46
co dělá ten zpětný apostrof na řádku 10?
|
||
fotohemalacz Profil |
#3 · Zasláno: 9. 1. 2011, 18:11:17
Je to převzato z příkladu
" ... v metodě Post je navíc XMLHttpRequestObjekt.setRequestHeader(’Content-Type’, ‘application/x-www-form-urlencoded’); - tedy uvádíme jaká data chceme v hlavičce posílat. A metoda send obsahuje věci, které chceme posílat. ..." |
||
fotohemalacz Profil |
#4 · Zasláno: 9. 1. 2011, 18:13:10
a při použití normálního apostrofu situace stejná
|
||
Tori Profil |
#5 · Zasláno: 9. 1. 2011, 18:18:25
fotohemalacz:
„Je to převzato z příkladu“ Možná tam mají nějakou funkci, která jim převádí běžné rovné uvozovky na zaoblené a apostrofy na jednoduché uvozovky. Nevím. Ale když všechny uvozovky od řádku 3 přepíšete na běžné apostrofy, chybová hláška se neobjeví. |
||
fotohemalacz Profil |
#6 · Zasláno: 9. 1. 2011, 19:55:41
Tori:
Díky, zmíněnou chybu to vyřešilo. Do divu "test" se oproti mým předpokladům, vypíše "undefined", a né číselná hodnota z pole, které je předáno php skriptu ($fotky_do_alba = $_REQUEST["pole"];) PHP skript je stejný jak výše uvedený, opravený javascript vypadá následovně: var XMLHttpRequestObjekt = false; if (window.XMLHttpRequest) {XMLHttpRequestObjekt = new XMLHttpRequest();} else if (window.ActiveXObject) {XMLHttpRequestObjekt = new ActiveXObject('Microsoft.XMLHTTP');} var input= fotky_do_alba; var cilovyDiv = document.getElementById('test'); if(XMLHttpRequestObjekt) {XMLHttpRequestObjekt.open('POST','ZapisAlbum.php', true); XMLHttpRequestObjekt.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); XMLHttpRequestObjekt.onreadystatechange = function(){ if (XMLHttpRequestObjekt.readyState == 4 && XMLHttpRequestObjekt.status == 200) { var obsah=XMLHttpRequestObjekt.responseText; document.getElementById("test").innerText = obsah.responseText; }} XMLHttpRequestObjekt.send('pole='+input.value);} } Zřejmě bude problém v tom, že se snažím předávat mezi skripty celé pole a né text, se kterým pracuje "responseText", je na to nějaký jiný způsob? díky |
||
Tori Profil |
#7 · Zasláno: 9. 1. 2011, 20:06:00
XMLHttpRequestObjekt.onreadystatechange = function(){ if (XMLHttpRequestObjekt.readyState == 4 && XMLHttpRequestObjekt.status == 200) { var obsah=XMLHttpRequestObjekt.responseText; document.getElementById("test").innerText = obsah.responseText; }} XMLHttpRequestObjekt.send('pole='+input.value);} } |
||
fotohemalacz Profil |
#8 · Zasláno: 9. 1. 2011, 20:46:23
Tori, Tori:
Díky za odpověď, ale nevidím rozdíl, oproti původní verzi (je možné, že už z toho blbnu.. tak omluva) |
||
_es Profil |
#9 · Zasláno: 9. 1. 2011, 20:57:44
Tori:
> var obsah=XMLHttpRequestObjekt.responseText; > document.getElementById("test").innerText = obsah.responseText; Jednak máš v premennej obsah reťazec a reťazce neobsahujú vlastnosť responseText a ďalej metóda innerText nie je dostatočne podporovaná. Čiže nejako takto: document.getElementById("test").innerHTML = XMLHttpRequestObjekt.responseText; |
||
Tori Profil |
#10 · Zasláno: 9. 1. 2011, 21:00:06 · Upravil/a: Tori
fotohemalacz, _es:
Jen jsem zvýraznila, že se fotohemalacz snaží číst vlastnost vlastnosti (responseText.responseText) a proto dostává hodnotu "undefined". InnerText jsem přehlédla. |
||
Časová prodleva: 13 let
|
0