如何通过AJAX显示PHP Foreach循环的答案

时间:2017-09-19 作者:Juan O Mtz

我的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。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 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

您的代码正在从数据库中进行选择,其中cor_estado.estado_id 等于$Estado_id = $_POST["selectVal"];, 但在JavaScript中,您不会将ID作为$_POST["selectVal"], 您实际上是在发送文本字符串"selectVal":

data:{action:\'my_action\', selectVal: \'selectVal\'},
将其更改为此,以发送实际变量值:

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

结束

相关推荐

前端主题选项AJAX返回0

您能帮我得到前端ajax返回的响应值为1吗。我已经更新了以下代码,现在返回的响应值为0if (isset($_POST[\'frontliveeditor_settings\']) && isset($_POST[\'action\']) && $_POST[\'action\'] == \"fnrlvedt_updateoption\"){ if (wp_verify_nonce($_POST[\'frontendlvedt\'],\'frnendlv_u