Autor Zpráva
PetrM
Profil *
Dobrý den.

Posílám přes Mootools Request přes post data stylem "Návod na vlastní šablonu".
Vše funguje krásně v Opeře, FF, Safari i Chrome. Ale IE8 má problém s diakritkou, protože do PHP scriptu dojde "Nd na vlastnablonu".

Nevíte kde by mohl být problém ?

Děkuji.
ah01
Profil
PetrM:
Nevíte kde by mohl být problém ?
Pomohl by odkaz na živou ukázku.
PetrM
Profil *
Bohužel ukázka je v administrační části takže nemohu.
Ale napíšu kód.

HTML:
<tr><td class="editable" rel="1">Návod na vlastní šablonu</td></tr>


JS:
window.addEvent('domready', function() {
	$$('.editable').each(function(el) {
		el.addEvent('dblclick',function() {
			var before = el.get('html').trim();
			el.set('html','');
			if(el.hasClass('textarea'))
			{
				var input = new Element('textarea', { 'class':'edit-box', 'text':before });
			}
			else
			{
				var input = new Element('input', { 'class':'edit-box', 'value':before });
				input.addEvent('keydown', function(e) { if(e.key == 'enter') { this.fireEvent('blur'); } });
			}
			input.inject(el).select();
			input.addEvent('blur', function() {
				val = input.get('value').trim();
				el.set('text',val).addClass(val != '' ? '' : 'editable-empty');
				var url = 'ajax.updateTitle.php?id=' + el.get('rel') + '&content=' + el.get('text');
				var request = new Request({
					url:url,
					method:'post'
				}).send();
			});
		});
	});
});


PHP (ajax.updateTitle.php):
(...)
$id = intval($_POST['id']);
$title = $db->real_escape_string($_POST['content']);
    
$query = "UPDATE articles SET title = '".$title."' WHERE id = '".$id."'";
    
$db->query($query);
(...)
ah01
Profil
Posíláš sice POST metodou, ale data předáváš přímo v adrese, už to je trochu podezřelé. Navíc se vůbec nestaráš o escape těch dat.

Proč to vůbec píšeš rovnou do URL a ne takto?

var url = 'ajax.updateTitle.php';
var data = {
    'id': el.get('rel'),
    'content': el.get('text')
};

var request = new Request({
    url:url,
    method:'post'
}).send(data);
PetrM
Profil *
Ohledně escape těch dat, tak je tam intval na ID a real_escape_string na title.

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:

0