web-dev-qa-db-ja.com

どのように私は表示することができます PHP foreachループの答え AJAX

AJAXリクエストに問題があります。foreachサイクルから値を取得しようとしていますが、空が返されます。

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);
            },
       });  
    }

これがデータの到着方法です

ALERT BY LOCALHOST 

1
Juan O Mtz

あなたのコードはcor_estado.estado_id$Estado_id = $_POST["selectVal"];と等しいデータベースから選択しています、しかしあなたのJavaScriptではあなたは$_POST["selectVal"]としてIDを送っていません、あなたは文字列"selectVal"を文字通り送っています:

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

これをこれに変更して、実際の変数値を送信します。

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