2010-12-30 11 views
1

Ich Modifizieren AutoSuggest Skript BSN, so dass es mit codeigniter funktionieren wird, ist die einzige proble ich kann, um herauszufinden, scheint warum es zeigt „fehlt) in klammerten“ sagt, das Problem um elsefehlt) in klammerten

_b.AutoSuggest.prototype.setSuggestions = function (req, input) { 
    if (input != this.fld.value) return false; 
    this.aSug = []; 
    if (this.oP.json) { 
     var jsondata = eval('(' + req.responseText + ')'); 
     for (var i = 0; i < jsondata.results.length; i++) { 
      this.aSug.push({ 
       'id': jsondata.results[i].id, 
       'value': jsondata.results[i].value, 
       'info': jsondata.results[i].info 
      }); 
     } 
    } else { 
     var xml = req.responseXML; 
     // traverse xml 
     // 
     var results = xml.getElementsByTagName('results')[0].childNodes; 
     for (var i = 0; i < results.length; i++) { 
      if (results[i].hasChildNodes()) this.aSug.push({ 
       'id': results[i].getAttribute('id'), 
       'value': results[i].childNodes[0].nodeValue, 
       'info': results[i].getAttribute('info') 
      }); 
     } 
    } 
    this.idAs = "as_" + this.fld.id; 
    this.createList(this.aSug); 
}; 
ist

Jede Hilfe wäre willkommen, ich bin nicht sehr gut in JS

+7

'eval' == ** böse **. –

+0

Stellen Sie sicher, dass Sie debuggen, z. B. den Code "eval" zu alarmieren. –

+3

@Jacob: 'Eval' ist in der richtigen Situation völlig in Ordnung. Es ist nicht nötig, den bösen Alarm jedes Mal zu ertönen, wenn er in einem Code erscheint. – user113716

Antwort

2

Die Ausgabe des Servers ist ungültig. Sehen Sie sich den responseText an, der entweder mit Fiddler oder Firebug zurückgegeben wird. Es ist höchstwahrscheinlich etwas in die Antwort injiziert, die nicht da sein sollte.

Auch wenn Sie jQuery verwenden, ändern Sie den Code, um ihre Ajax-Methoden zu verwenden.