|
Publicité | ||||||||||||||||||||||
|
|
#1 (permalink) |
|
Membre à l'essai
![]() Date d'inscription: janvier 2007
Messages: 43
|
Bonjour à tous
voici mon problème : Je dispose de deux fonctions : une de vérification et une autre d'ajout de champs la première va récupérer les infos concernant les données entrées dans le champ la seconde permet d'ajouter automatiquement un champ. le but : La page contient les informations d'un bon de mouvement elle a pour but également de servir de comparaison, je m'explique : la personne qui receptionne le bon va regarder les infos qu'il y a dessus en l'occurence les numéros de série et comparer avec ceux qu'il a reçu. il utilisera un lecteur de code barre. Le document se présente ainsi : la liste des numéros insérés lors de la création du bon et à coté un champ vierge qui s'auto ajoute au fur et à mesure. Quand un produit est scanné le numéro de série et comparé avec ceux présent dans la bdd cela affiche à coté "OK" Mes fonctions me permettent bien : - de comparer le numéro de série scanné avec celui ou ceux dans la Bdd un petit OK apparaît rien dans le cas contraire. - D'ajouter un champ automatique au fur et à mesure. les soucis : - Si un produit scanné n'est pas présent permettre de l'ajouter un bouton ajouter apparaît à coté de celui-ci sans pour autant arrêter l'ajout automatique des champs - quand une touche du type ctrl ou maj etc... et appuyée un champ s'ajoute également... - à l'état actuel si je scan deux fois le même produit il me check quand même (ceci je pense que le pb vient de la requête) Merci Code :
function verifNserie(id) { var id_bons = document.getElementById('id_bons').value; var span = id.substring(5); var nb = parseInt(span) + 1; var num = $F(id); var url = 'traitement_bons_stock2.php?action=verifNserie_bons'; var params = 'num_serie='+num + ";" + id_bons; var req = new Ajax.Request(url,{encoding: 'UTF-8', method: 'post',parameters : params, onSuccess: function(xhr){ var text = xhr.responseText; var tableau = text.split("_"); if(tableau[1] == "OK") { agent.call('','session_add_num_serie','session_add_num_serie_Callback',trim(tableau[0])); $("span"+span).update(tableau[2]+" "+tableau[3]+" "); $("span"+span).style.color='#000'; if(span == ( $("nb_ligne_num_serie").value -1 ) ) { ajout_champs_nums($("nb_ligne_num_serie").value,0); } } } }); ajout_champs_nums($("nb_ligne_num_serie").value,0); } Code :
function ajout_champs_nums(id,init){ var tab_num_serie = $('tab_num_serie'); var row = new Element("tr", null); var cell_titre = new Element("td", null); var txt_titre = document.createTextNode("Num Série "+id+" : "); cell_titre.appendChild(txt_titre); var cell_input = new Element("td", null); //var input_bons = new Element("input", {type:'hidden', name:'id_bons',id:'pompe'+id, value:'id_bons'}); var input_input = new Element("input", {type:'text', name:'num_serie',id:'pompe'+id}); input_input.onkeyup = function(){create_timer('verifNserie',500,this.id);}; cell_input.appendChild(input_input); var cell_msg = new Element("td", null); var span_msg = new Element("span", null); span_msg.setAttribute('id', 'span'+id ); cell_msg.appendChild(span_msg); // ajout du span pour les messages d'erreur var cell_msg_error = new Element("td", null); var span_msg = new Element("span", {className:'warning',id: 'msg'+id}); cell_msg_error.appendChild(span_msg); row.appendChild(cell_titre); row.appendChild(cell_input); row.appendChild(cell_msg); row.appendChild(cell_msg_error); tab_num_serie.appendChild(row); if (init != 1 ) { $("nb_ligne_num_serie").value ++; } $("pompe"+id).focus(); } Code :
$tab_nums = explode(";",$num_serie); $query = " SELECT id_bons,num_serie,statut FROM psh_stock_ligne WHERE id_bons ='$tab_nums[1]' AND num_serie = '$tab_nums[0]'"; $query = mssql_query($query)or die ('Erreur SQL!'); $data = mssql_fetch_assoc($query); $ok ='OK'; $num_serie = $data['num_serie']; $nb = count($tab_nums[1]); for($i=0;$i<$nb;$i++) { if($data) { echo $num_serie."_OK_".$ok."_"; } else { echo $num_serie."_KO_"; } } |
|
|
|
|
|
#2 (permalink) |
|
Membre à l'essai
![]() Date d'inscription: janvier 2007
Messages: 43
|
Problème partiellement résolu :
me reste toujours le problème des touches qui génère un champ (touches spécifiques du type : ctrl, alt etc...) Et le fait qu'un produit re-scanné soit encore contrôlé ! Code :
var id = 0; function verifNserie(id) { var id_bons = document.getElementById('id_bons').value; var span = id.substring(5); var nb = parseInt(span) + 1; var num = $F(id); var url = 'traitement_bons_stock2.php?action=verifNserie_bons'; var params = 'num_serie='+num + ";" + id_bons; var req = new Ajax.Request(url,{encoding: 'UTF-8', method: 'post',parameters : params, onSuccess: function(xhr){ var text = xhr.responseText; var tableau = text.split("_"); if(tableau[1] == "OK") { agent.call('','session_add_num_serie','session_add_num_serie_Callback',trim(tableau[0])); $("span"+span).update(tableau[2]+" "+tableau[3]+" "); $("span"+span).style.color='#000'; //if(span == ( $("nb_ligne_num_serie").value -1 ) ) { ajout_champs_nums($("nb_ligne_num_serie").value,0); //} //document.lavage_pompe.btn_valider.disabled = false; } else { agent.call('','session_add_num_serie_Callback',trim(tableau[0])); $("span"+span).update(tableau[2]+" "); $("span"+span).style.color='#000'; var btn_imp = new Element("input", {type:'button',value:'Ajouter'}); btn_imp.onclick = function(){ var nb_ligne_num_serie = $("tab_num_serie").rows.length; var pompe = ''; for(i=1;i<=nb_ligne_num_serie;i++) { var num_serie = $("pompe"+i).value; location.replace("traitement_bons_stock2.php?action=ajouter_numserie&num_serie="+num_serie+"&id_bons="+id_bons)}; } $("span"+span).appendChild(btn_imp); ajout_champs_nums($("nb_ligne_num_serie").value,0); } }}); } |
|
|
|
|
|
![]() |
||
Gestion champs dynamique
|
||
| Outils de la discussion | |
|
|