2010-12-09 13 views
0

Je veux montrer quelques données de DB. et je suis utiliser ajax pour le faire. Mais quelque chose ne va pas, le ne peut pas montrer après que j'ai changé un script jquery dans ma page.ajax aucune fonction après modification du script jquery

quelle partie du script suivant qui a causé ma page ne montre le résultat:

$("#model").change(function() { 
      var barcode; 
      barCode=$("#model").val(); 
      var data1 = $("#model").val(barCode.substr(0,barCode.length-8)); 
      var data2 = $("#serial").val(barCode.substr(barCode.length-8,8)); 
      var str= data1; 
      var matches=str.match(/[TEJUG2]\D*D/i); 
     $.ajax({ 
        type:"post", 
        url:"process1.php", 
        data:"tversion="+matches+"&action=tunermatches", 
        cache:false, 
        async:false, 
        success: function(res){ 
           $('#value').replaceWith(
              "<div id='value'><h6>" + res + "</h6></div>" 
              ); 
           } 
        }); 

ce que je veux faire est après certaines données séparées. le script lira data1 puis effectuera un filtrage à partir de la valeur du texte (utilisez regex). Après la correspondance, ajax envoie à DB puis filtre les données à l'intérieur de la base de données. après que les données seront affichées à l'intérieur de la page.

+0

@klox, qu'est-ce que vous obtenez de php, pouvez-vous vérifier avec firebug si vous obtenez des données? – kobe

+0

TypeError non intercepté: L'objet # n'a pas de méthode 'match' – klox

+0

il y a une erreur ici var correspond à = str.match (/ [TEJUG2] \ D * D/i); puis – kobe

Répondre

1

Vous faites des choses étranges avec vos variables.

Initialement, barCode=$("#model").val(); semble raisonnable, bien que vous pourriez vouloir le combiner avec la définition ci-dessus.

Puis invoquez var data1 = $("#model").val(barCode.substr(0,barCode.length-8));, donc data1 est en fait un objet jQuery: http://api.jquery.com/val/#val2

il semble donc que vous appelez val (quelque chose) et attendant de revenir la chaîne, comme si vous aviez appelé val() . Ce que vous voulez probablement faire est de dire

var data1 = $("#model").val(barCode.substr(0,barCode.length-8)).val();

Parce que cela vous donnera la valeur réelle de ce qui est en #model.

En outre, matches est un tableau, alors vous voudrez probablement appeler

data:"tversion="+matches.length+"&action=tunermatches", au lieu (noter l'ajout du .length-matches).

+0

je pense que mon projet peut encore travailler sans changer 'matches' dans' matches.length'. – klox