2016-04-04 5 views
1

Ich habe eine Dropdown-Liste, die Ergebnisse mit jquery ajax filtert. Aber ich kann nicht herausfinden, wie man die Werte in der Liste trennt.Einzelne Werte in einer Dropdown-Liste mit jquery ajax

Wenn ich diesen Code verwenden:

$("#orderby").on('change', function() { 

    $.post("ajax/prijslaaghoog.php", $("#orderby").val('lowhigh'), function(result){ 
     $("#productviewajax").html(result); 
    }); 

    $.post("ajax/default.php", $("#orderby").val('default'), function(result){ 
     $("#productviewajax").html(result); 
    }); 
}); 

Es beide PHP-Dateien ausgeführt wird, wenn ich einen Wert aus. Wie kann ich es so machen, dass nur default.php ausgeführt wird, wenn Standard ausgewählt ist, und prijslaaghoog.php wenn lowhigh ausgewählt ist? wie unten

$("#orderby").on('change', function() { 
    if ($('#orderby').val() == 'lowhigh'){ 
     //post here. 
    }else if ($('#orderby').val() == 'default'){ 
     //post here 
    } 
}); 

Antwort

2

$("#orderby").val('lowhigh') Verwenden Sie setzen den Wert des Dropdownlist . Stattdessen sollten Sie die Option Filter ausgewählt:

$("#orderby").on('change', function() { 

    var strUrl = "ajax/default.php"; 
    var strFilter = $('#orderby > option').filter(':selected').val(); 

    if (strFilter == 'lowhigh'){ 
     strUrl = "ajax/prijslaaghoog.php"; 
    } 

    $.post(strUrl, { filter: strFilter }, function(result){ 
     $("#productviewajax").html(result); 
    }); 

}); 

Und auch, wenn Sie data Attribut in jeder Option haben Sie brauchen noch nicht einmal ein if statement:

<select id="orderby"> 
    <option value="default" data-post-url="default.php">Default</option> 
    <option value="lowhigh" data-post-url="prijslaaghoog.php">lowhigh</option> 
</select> 

$("#orderby").on('change', function() { 

    var option = $('#orderby > option').filter(':selected'); 

    $.post("ajax/" + option.data("post-url"), { 
     filter: option.val() 
    }, function(result){ 
     $("#productviewajax").html(result); 
    }); 

}); 
+0

Gibt es einen Tippfehler vielleicht in den letzten Skript? Wenn ich die Datenteile hinzufüge, wird kein PHP-Skript ausgeführt. – twan

+0

Sorri, ich habe einen Fehler gemacht, ist nicht $ ('# orderby'). Filter '.. sollte '$ (' # orderby> option ') sein. Filter' –

+0

Super, das funktioniert! Vielen Dank. – twan

0

Versuchen Sie, wenn Klausel wie diese .post vor $ setzen

$("#orderby").on('change', function() { 
    if ($(this).val() == 'lowhigh'){ 
     $.post("ajax/prijslaaghoog.php", $("#orderby").val('lowhigh'), function(result){ 
      $("#productviewajax").html(result); 
     }); 
    }else if ($(this).val() == 'default'){ 
     $.post("ajax/default.php", $("#orderby").val('default'), function(result){ 
      $("#productviewajax").html(result); 
     }); 
    } 
}); 
0

Sie:

Vielen Dank im Voraus

Verwandte Themen