我的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);
},
});
}
数据就是这样到达的
最合适的回答,由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},