2010-12-09 10 views
0

Ich möchte einige Daten aus der DB zeigen. und ich benutze Ajax, um das zu tun. Aber etwas falsches ist passiert, das kann nicht angezeigt werden, nachdem ich einige jquery-Skript in meiner Seite geändert habe.Ajax keine Funktion nach Änderung jquery Skript

, welcher Teil von folgenden Skript, das meine Seite verursacht nicht das Ergebnis zeigen:

$("#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>" 
              ); 
           } 
        }); 

was ich will ist nach getrennten einige Daten zu tun. Das Skript liest data1 und führt dann einige Filterzeichen aus dem Textwert aus (regex verwenden).

nach der Übereinstimmung wird Ajax an DB senden und dann Daten innerhalb der DB filtern. danach werden Daten innerhalb der Seite angezeigt.

+0

@klox, was bekommst du zurück von php, kannst du mit firebug überprüfen, wenn du Daten bekommst? – kobe

+0

Uncaught TypeError: Objekt # hat keine Methode 'Match' – klox

+0

Es gibt hier einen Fehler var Übereinstimmungen = str.match (/ [TEJUG2] \ D * D/i); dann – kobe

Antwort

1

Sie machen seltsame Dinge mit Ihren Variablen.

Zunächst sieht barCode=$("#model").val(); vernünftig aus, obwohl Sie es vielleicht mit der obigen Definition kombinieren möchten.

Dann rufen Sie var data1 = $("#model").val(barCode.substr(0,barCode.length-8));, so data1 ist eigentlich ein jQuery-Objekt: http://api.jquery.com/val/#val2

So sieht es aus wie Sie anrufen val (etwas) und erwartet die Zeichenfolge zurück, wie wenn du val genannt hatte() . Was Sie wahrscheinlich tun möchten, ist zu sagen

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

Da dies wird Ihnen den aktuellen Wert von dem, was in #MODEL ist.

Zusätzlich matches ist ein Array, so möchten Sie wahrscheinlich

data:"tversion="+matches.length+"&action=tunermatches", statt (man beachte die Zugabe des .length-matches) nennen.

+0

ich denke mein Projekt kann noch funktionieren ohne Änderung 'passt' zu' matchs.length'. – klox

Verwandte Themen