Ajax füllt das Dropdown-Menü nicht aus, wenn es zu schnell ausgewählt wirdPhp

PHP-Programmierer chatten hier
Anonymous
 Ajax füllt das Dropdown-Menü nicht aus, wenn es zu schnell ausgewählt wird

Post by Anonymous »

Ich versuche, einen Filter mit zwei Dropdown-Menüs zu erstellen, eines mit Shows und eines mit ihren Standorten. Wenn im ersten Dropdown-Menü eine Show ausgewählt wird, wird die Liste der Orte im zweiten Dropdown-Menü so geändert, dass sie nur die Orte enthält, an denen diese bestimmte Show gespielt wird. Das Problem, das ich jetzt habe, besteht darin, dass, wenn ein Benutzer zu schnell auf das Dropdown-Menü „Standorte“ klickt, nachdem er eine Show ausgewählt hat, diese manchmal erst aktualisiert wird, nachdem der Benutzer eine Auswahl getroffen hat, die Liste geändert und somit seine Auswahl entfernt hat (dies passiert häufig in Edge). Gibt es eine Möglichkeit, die Liste im Standort-Dropdown schneller zu aktualisieren? Oder zumindest die Aktualisierung erzwingen, obwohl es ausgewählt ist?
Dies ist das JavaScript, das ich verwende. Es verwendet die Funktion „example_ajax_request“, die ich zu „functions.php“ in WordPress hinzugefügt habe. Sie können sie unterhalb des Skripts sehen.

Code: Select all

 $('#select_show').change( function(){
var show = $("#select_show :selected").text();

$.ajax({
type: "post",
url: ajaxurl,
data: {
'action':'example_ajax_request',
'show' : show
},
dataType:"json",
success:function(data) {
console.log("what is happening al of a sudden");
console.log(data);
$('#province').children('option').remove();

for(var i = 0; i < data.length; i++)
{
if( data[i] == 'Choose a province')
var value = "all";
else
var value = data[i];

$('#province').append( $("").text(data[i]) );
}

},
error: function(errorThrown){
console.log(errorThrown);
}
});

});
Meine Funktion, die die Liste der Orte (Provinzen) abruft

Code: Select all

 function example_ajax_request() {

$arrayList = array();
$arrayList[] = "Choose a province";

$selected = $_POST['show'];

if( $selected == "Choose a show" )
$selected = "";

$arg = array(
'posts_per_page' => -1,
'post_type' => 'address',
'meta_key' => 'show',
'meta_value' => $selected,
);

$the_query = new WP_Query( $arg );

if( $the_query->have_posts() )
{
while ( $the_query->have_posts() )
{
$the_query->the_post();
$arrayList = get_option_list('province', $arrayList);
}
}
print json_encode($arrayList);
wp_reset_query();

die();
}

add_action( 'wp_ajax_example_ajax_request', 'example_ajax_request' );
add_action( 'wp_ajax_nopriv_example_ajax_request', 'example_ajax_request' );
Und das sind die Dropdowns und ihre Abfragen:

Code: Select all

    



Choose a show

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post