11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je suis en train de finaliser la version d'essai de mon projet informatique, vous le trouverez à l'adresse http://www.widjoo-pro.com/. Pour voir la nature du problème, il faut se connecter avec l'identifiant "demo.demo" et le mode de passe "demo" ; aller ensuite dans la catégorie "Factures et devis", sélectionner une facture et essayer d'ajouter un produit en indiquant "test" dans le libellé. Normalement, une liste de résultats prédéfinis s'affiche (là il n'y a qu'un produit nommé "lest"). Le soucis est que lorsque l'on met un apostrophe, l'erreur suivante revient : "Erreur de syntaxe près de 'SCRIPT NAME';s:-:"/ajax.php";s;15:"HTTP_CONNECTION";s:10:keep-a' à la ligne 1". Si c'était une erreur récurrente, je parviendrais à la résoudre. Mais là cette erreur ne survient que sur le PC de mes parents équipé de SUSE LINUX et de FIREFOX 2 ... Smiley ohwell ... je suppose donc que le soucis vient de la configuration matérielle, enfin je pense, car je ne connais vraiment pas grand chose en ajax.
Aussi, je trouve que la recherche est particulièrement lente ... lorsqu'on tape du texte, ce n'est pas aussi fluide qu'un formulaire classique, est-ce normal en ajax ?
Je vous communique l'adresse du fichier javascript : http://www.widjoo-pro.com/javascript.js
Ainsi que l'extrait du code PHP appelé :


function decodage($field) {
	$field = stripslashes($field);
	$field = str_replace('<br />', '', $field);
	return $field;
}
function encodage($field) {
	$field = addslashes($field);
	$field = nl2br($field);
	$field = trim($field);
	return $field;
}
		$ul_off = false;
		$connect = 'SELECT id_family, product_name, product_reference, product_price, product_tax FROM widjoo_pro_activities_products WHERE id_activity = "'.$GLOBALS['activity_id'].'" AND product_name LIKE "'.encodage($_GET['value']).'%" AND delete_timestamp IS NULL ORDER BY product_name ASC, product_reference ASC, product_price ASC';
		$result = mysql_query($connect);
		while($row = mysql_fetch_array($result)) {
			if($ul_off == false) {
				echo '<ul>';
			}
			echo '<li><a onClick="input_change_value({product_price_type : \'product_price_type_1\', id_family : \''.$row['id_family'].'\', product_name : \''.$row['product_name'].'\', product_reference : \''.$row['product_reference'].'\', product_price : \''.$row['product_price'].'\', product_tax : \''.substr($row['product_tax'], 0, 1).'\', product_tax_2 : \''.substr($row['product_tax'], 4, 1).'\', product_tax_3 : \''.substr($row['product_tax'], 8, 1).'\', product_tax_4 : \''.substr($row['product_tax'], 12, 1).'\'});close_box(\'input_propositions\');"><span class="txt_bold">'.decodage($row['product_name']).'</span> <span class="txt_italic">(Prix : '.$row['product_price'].''.$GLOBALS['company_currency'].'. T.V.A. : '.substr(str_replace('|:|', '', $row['product_tax']), 0, 2).','.substr(str_replace('|:|', '', $row['product_tax']), 2, 2).'%)</span></a></li>';
			$ul_off = true;
		}
		if($ul_off == true) {
			echo '<li class="txt_right"><a onClick="close_box(\'input_propositions\');" class="txt_bold">Fermer ce cadre</a></li>';
			echo '</ul>';
		}


Merci d'avance pour vos réponse,
& désolé si je ne suis pas très clair, je début en ajax et difficile de déterminer clairement ce qui est réellement utile ou non,
Gaylord.P.
Modifié par Gaylord.P (25 Jan 2010 - 12:31)
Salut,
En utilisant encodeURIComponent() ? Et peut être utilisais & au lieu d'un simple &.
autocompletion=' + encodeURIComponent(id) + '&value=' + encodeURIComponent(input_id.value)

Un petit test, essaye directement l'url dans le navigateur pour voir s'il retourne une erreur.