| 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: 15 let
|
|||
0