Autor Zpráva
fotohemalacz
Profil
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
co dělá ten zpětný apostrof na řádku 10?
fotohemalacz
Profil
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
a při použití normálního apostrofu situace stejná
Tori
Profil
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
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
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
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
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
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.

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: