Lecture d'un text dans un code javascript à partir de HTML

Fermé
Joker_ Messages postés 173 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 - 2 janv. 2023 à 18:08
jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 - 4 janv. 2023 à 06:46

Bonjour,

le code html de mon formulaire est le suivant

<form action="test_faire.php" method="GET">
					<input type="hidden" name="code_article" value="" id="code_article">
					<input type="hidden" name="code_credit" value="<?php echo $code_credit?>">
					<input type="hidden" name="code_bs" value="<?php echo $code_bs?>">
				<table>
					<tr>
						<td valign="top">
								<div ><b>Trouver: </b>
									<input autofocus tabindex ="1" type="text" id="article_id" name="article" onkeyup="autocompletBS()" autocomplete=off  required="required" >
									<ul id="article_div"></ul>
								</div>
						<td valign="top">
							<input type="number" min="1"  value="1" id="q" name="quantite"   tabindex ="2" autocomplete=off size="3" step="1">
						<td valign="top">
							<input type="image" value="Ajouter " src="ajouter_rose.jpg" height="30" width="30">	

					</table>
 </form>

d'autre part le code javascrip dans le meme fichier php qui s'appelle test.php est le suivant:

<script type="text/javascript">
function autocompletBS() {
		confirm();
		var keyword = $('#article_id').val();
		confirm();
		$.ajax({
			url: 'ajax_refresh_code_barre.php',
			type: 'POST',
			data: {keyword:keyword},
			success:function(data){
				$('#article_div').show();
				$('#article_div').html(data);
			}
		});

}
function set_item4(item) {
	// change input value
	$('#article_id').val(item);
	// hide proposition list
	$('#country_list_id_bs_credit').hide();
}  
</script>

cette page  ne fonctionne pas comme je veux, pour cela j'ai pensé à executer des messageBox dans le code javascript pour connaitre l’état de mes variable, j'ai découvert quelque chose bizare; le code ne s'execute pas après la ligne         var keyword = $('#article_id').val(); car un seul messageBox a apparu lorsque je tape le clavier!!!!

 svp aider moi çà comprendre mon problème.
Windows / Firefox 108.0

A voir également:

2 réponses

jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 4 651
2 janv. 2023 à 20:42

Bonjour,

Déjà, au lieu de mettre des "confirm" , utilises des console.log

ça évitera que le programme ne se stoppe.

Ensuite, gère les éventuelles erreurs de l'appel AJAX

En gros

function autocompletBS() {
  var keyword = $('#article_id').val();
  console.log('keyword',keyword);
  $.ajax({
    url: 'ajax_refresh_code_barre.php',
    type: 'POST',
    data: {keyword:keyword},
    success:function(data){
      $('#article_div').show();
      $('#article_div').html(data);
    },
    error:function(err){
      console.log('ERREUR',err);
    }
  });

}
function set_item4(item) {
	// change input value
	$('#article_id').val(item);
	// hide proposition list
	$('#country_list_id_bs_credit').hide();
}  

Et puis, pense à regarder dans la console de ton navigateur ( après avoir activé le débugage du XHR (ou xmlhttprequest selon que tu utilises firefox (que je te recommande pour tes tests..) ou google chrome )

(tu peux aussi utiliser l'onglet "réseau" de la console du navigateur pour voir les appels ajax...

Maintenant, si ton but est de faire un autocomplete .. pourquoi ne pas utiliser celui de jquery ui ?

https://jqueryui.com/autocomplete/


0

Salut, j'ai remarqué ceci:

$('#article_id').val(item);

Alors que la méthode JQUERY .val n'accepte pas de paramètres comme dit dans la doc:

Ne serait il pas plus simple d'utiliser du pur JavaScript ici?

document.getElementById('article_id').value=''+item
//-- ou le mieux un mix des 2 parce que le sélecteur JQUERY est plus rapide à écrire
$('#article_id').value=''+item
//-- en JQUERY complétement mais bon on gagne pas grand chose:
$('#article_id').attr('value', ''+item)

Il est indispensable d'utiliser la console du navigateur, ne serait ce que pour voir les erreurs, et des console.log pour vérifier les valeurs quand on en a besoin.

-1
jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 4 651
Modifié le 4 janv. 2023 à 06:47

La méthode JQUERY .val n'accepte pas de paramètres comme dit dans la doc

 N'importe quoi....  Bien sûr qu'on peut y mettre un paramètre... Ça sert justement à renseigner une valeur ..

D'ailleurs.. suffit de lire correctement la doc en question

https://api.jquery.com/val/#val2

0