it-swarm.com.de

Wie kann ich eine PHP Antworten von foreach loop von AJAX

Ich habe ein Problem in meiner AJAX -Anforderung. Ich versuche, Werte aus einem foreach-Zyklus abzurufen, aber sie wird leer zurückgegeben

Functions.php file

 function selectEstado(){
 global $wpdb;
 if(isset($_POST["selectVal"])){ 
    $Estado_id = $_POST["selectVal"];
     $Estado = $wpdb->get_results("SELECT * FROM cor_municipio INNER JOIN cor_estado ON cor_municipio.estado_id = cor_estado.estado_id WHERE cor_estado.estado_id = $Estado_id;");
    foreach ( $Estado as $row ) {
        $table .="<tr>";
        $table .="<td>".$row->nombre_municipio."</td>";
        $table .="<td>".$row->nombre_estado."</td>";
        $table .="</tr>";
    }
        echo $table;
        wp_die(); 
    }
}
add_action('wp_ajax_my_action', 'selectEstado');
add_action('wp_ajax_nopriv_my_action', 'selectEstado');

AJAX ON page-municipio.php

<script type="text/javascript">
 function selectRequest(id){ // id of select
    var selectVal = jQuery(id).val(); // currently selected 
    selectVal = selectVal.toString();
    jQuery.ajax({
        url:"/cors/wp-admin/admin-ajax.php",   
        type:"POST", 
        data:{action:'my_action', selectVal: 'selectVal'},
        success:function(data){ 
            alert(data);  
            jQuery("#municipio_result").hide();
            jQuery("#resultado").append(data);
            },
       });  
    }

So kommen die Daten an

 ALERT BY LOCALHOST 

1
Juan O Mtz

Ihr Code wählt aus der Datenbank, in der cor_estado.estado_id gleich $Estado_id = $_POST["selectVal"]; ist, aber in Ihrem JavaScript senden Sie keine ID als $_POST["selectVal"], Sie senden buchstäblich die Textzeichenfolge "selectVal":

data:{action:'my_action', selectVal: 'selectVal'},

Ändern Sie dies, um den tatsächlichen Variablenwert zu senden:

data:{action:'my_action', selectVal: selectVal},
0
Jacob Peattie