[英]jQuery AJAX post not working with my php code
我正在尝试进行动态选择。 您应该首先选择州(id =“ edo”),然后选择城市(id =“ municipio”)。 两者都从我的数据库中检索信息; 但是,当我尝试让城市选择通过AJAX通过邮寄动态响应时,没有任何变化。 我直接运行我的页面getMunicipio.php
,得到的是注意:第9行的C:\\xampp\\htdocs\\nthlife\\js\\getMunicipio.php
未定义索引:id_estado
你能帮助我吗? 这是我的JavaScript代码。
$(document).ready(function (){
$("#edo").change(function () {
$("#edo option:selected").each(function () {
id_estado = $(this).val();
//alert(id_estado);
$.post("getMunicipio.php", { id_estado: id_estado }, function(data){
$("#municipio").html(data);
});
});
})
});
这是getMunicipio.php中的代码
include "../includes/conexionbd.php";
//var_dump($_POST);
//if (isset($_POST['id_estado']))
{
$id_estado = $_POST['id_estado'];
$queryM = "SELECT * FROM municipios WHERE estado = '".$id_estado."'";
$resultadoM = mysqli_query($conexion, $queryM) or die(mysqli_error($conexion));
$check = mysqli_num_rows($resultadoM);
$html= "<option value='0'>" . $check . "</option>";
while($rowM = mysqli_fetch_array($resultadoM))
{
$html.= "<option value='".$rowM['id_municipio']."'>".$rowM['nombre_municipio']."</option>";
}
echo $html;
}
谢谢。
确实需要查看您的HTML,但是从发布的内容来看,JavaScript端应该可以正常工作。
您在var_dump($_POST)
看到什么? 直接运行页面可能会引发错误,因为未设置POST变量,并且已将if (isset($_POST['id_estado']))
条件注释掉。 您应该将条件更改为if (!empty($_POST['id_estado']))
,就好像表单使用空值发布该表单时,该表单仍将被设置,但它将为空。
您正在使用双引号创建字符串,因此无需转义变量,因为PHP会解析它们。
这些:
$html= "<option value='0'>" . $check . "</option>";
$queryM = "SELECT * FROM municipios WHERE estado = '".$id_estado."'";
可以成为这些:
$html= "<option value='0'>$check</option>";
$queryM = "SELECT * FROM municipios WHERE estado = '$id_estado'";
但是,不能在双引号字符串中使用单引号数组键。
更改此:
$html.= "<option value='".$rowM['id_municipio']."'>".$rowM['nombre_municipio']."</option>";
对此:
$html.= "<option value='{$rowM['id_municipio']}'>{$rowM['nombre_municipio']}</option>";
或这个:
$html.= "<option value='$rowM[id_municipio]'>$rowM[nombre_municipio]</option>";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.