2015-04-18 12 views
7

Hi Ich versuche, die Optionen basierend auf der Eingabe an Tag auswählen. aber die Optionen hängen nicht an. Ich bekomme nicht einmal die Fehler, also wo ist der Fehler nicht in der Lage zu verstehen.jQuery: Versuchen, die Optionen anzuhängen, Tag

HTML

<div class="col-lg-5"> 
     <div class="input-group"> 
      <label>Select type of Graph</label>  
      <select data-placeholder="Select Field..." id="graph_name" style="width:300px;" name="team_name" class="chosen-select" tabindex="2"> 

      </select> 
     </div> 
    </div> 

jQuery:

$('#field_name').change(function() { 
    var fieldname = $('#field_name option:selected').val(); 
    $.post('<?php echo BASE_URL . 'php/processing/formDashboard/graph/showPossibleGraphs.php?id=' . $_GET['id']; ?>', {fieldname: fieldname}, function(data) { 
    $.each(data.graphs, function(index, value) { 
     $.each(value, function(index, value) { 
     console.log(value.id); 
     console.log(value.text); 
     var option = '<option value="'+value.id+'">'+value.text+'</option>'; 
     $('#graph_name').append(option); 
     }); 
    }); 
    }); 
}); 

Hier ist der Screenshot This is the image when i selected the option from one dropdown & the data came from script in JSON format

Dies ist das Bild, wenn ich die Möglichkeit, aus einer Drop-Down ausgewählt & die Daten Nocken e aus Skript im JSON-Format

This is the firebug debugging screenshot that shows that data is getting appended but on click it is showing nothing

Dies ist die Screenshot firebug Debugging, die diese Daten zeigen angefügt zu werden, sondern auf klicken, um es nichts zeigt Meine Beispieldaten sind:

sample data: { 
    "status":"OK", 
    "response":200, 
    "graphs":[[ 
    {"id":"B","text":"Bar Chart"}, 
    {"id":"D","text":"Doughnut Chart"}, 
    {"id":"P","text":"Pie Chart"} 
    ]] 
} 
+1

wo ist ' '# field_name''? hast du Daten in der Konsole? 'console.log (value.text);' –

+0

Ich habe nicht den Feldnamen select-Tag hinzugefügt, da Werte zu value.id & value.text kommen Ich kann dies auf der Konsole sehen, es ist nicht an das Ziel – Shaggie

Antwort

7

BEARBEITEN Basierend auf Chat

Da Sie diedynamisch bilden, müssen Sie das gewählte Plugin auslösen.

$('#graph_name').trigger("chosen:updated"); 

Fügen Sie es nach dem Anhängen der Optionen hinzu. Es wird funktionieren

DEMO

Sie versuchen, die Zeichenfolge direkt anzuhängen. Aber Sie müssen das DOM-Element anhängen.

var option = '<option value="'+value.id+'">'+value.text+'</option>'; 
    $('#graph_name').append(option); 

Es muss

var option = $('<option value="'+value.id+'">'+value.text+'</option>'); 
    $('#graph_name').append(option); 

Noch besser ist, statt bei jeder Iteration zu der DOM-Struktur anhängen. Laden Sie es ein Array und stellen Sie dann die HTML() in select. Es wird die Leistung verbessern.

+0

angehängt Eigentlich ist das Problem, dass es anhängt, aber nicht zum Dropdown zeigt. Stattdessen, wenn ich es im Feuerbug gesehen habe, zeigt es mich an, aber das ganze div, das ich gesehen habe, ist im Behindertenformat. Was ist es, ich bekomme nicht – Shaggie

+0

Können Sie eine JSfiddle erstellen, um zu sehen? – mohamedrias

+0

Ich werde den Screenshot hier hinzufügen. jsfiddle braucht Zeit Ich habe Plugin gewählt, das ich benutze, um das Dropdown – Shaggie

2

wäre eine weitere Alternative:

$.each(selectValues, function(key, value) { 
    $('#graph_name') 
     .append($("<option></option>") 
     .attr("value",key) 
     .text(value)); 
});