在PHP和JQuery中使用Ajax时出错

Error using Ajax in PHP and JQuery

本文关键字:Ajax 出错 PHP JQuery      更新时间:2023-09-26

我遇到了一个问题,当我尝试在PHP文件中使用ajax,调用另一个PHP文件。下面是php文件的代码:

<script>
        function obtenerProductos(cat) {
            parametros = {"idCat": cat};
            $.ajax({
                data: parametros,
                url: '/bin/getProductos.php',
                type: 'post',
                beforeSend: function() {
                    $(".prods > form").html("Procesando, espere por favor...");
                },
                success: function(respuesta) {
                    $(".prods > form").html(respuesta);
                }
            });
        }
        function obtenerProducto(prod) {
            parametros2 = {"idProd": prod};
            $.ajax({
                data: parametros2,
                url: '/bin/getProducto.php',
                type: 'post',
                beforeSend: function() {
                    lista = $(".cPreview").html() + "<br/> Añadiendo...";
                    $(".cPreview").html(lista);
                },
                success: function(respuesta) {
                    lista = $(".cPreview").html()+ respuesta.nombre + "'t" + respuesta.precio + "<br/>" ;
                    $(".cPreview").html(lista);
                    precio = parseFloat($(".precioT").html()) + respuesta.precio;
                    $(".precioT").html(precio);
                }
            });
        }
    </script>

在这个脚本的第一个函数中,我调用第一个PHP (getProductos.php)来获取一个类别的所有产品,并接收一个以表单形式打印的html。第二个函数调用另一个php (getproduct .php)来获取所选产品的所有信息,并将其打印到另一个div中。这里的PHP文件名为。

getProductos.php (This works)

<?php
include '../funciones.php';
$recibido = $_POST['idCat'];
echo obtenerProductosCategorias($recibido);
?>

getProducto.php(不工作)

<?php
include '../funciones.php';
$recibido = $_POST['idProd'];
echo obtenerProductos($recibido);
?>

和本代码的2个功能:

function obtenerProductosCategorias($idCat) {
    conectDB();
    $string = "";
    $sql = 'select * from Productos where id_categoria="' . $idCat . '";';
    $resultado = mysql_query($sql);
    while ($row = mysql_fetch_array($resultado)) {
        $string = $string . "<input type='button' onclick='obtenerProducto(" . $row["id_producto"] . ");return false;' value='" . $row['nombre_producto'] . "' />";
    }
    return $string;
    closeDB();
}
function obtenerProductos($idProd) {
    conectDB();
    $sql = 'select * from Productos where id_producto="' . $idProd . '";';
    $resul = mysql_query($sql);
    while ($row = mysql_fetch_array($resul)) {
        $resultado["nombre"] = $row["nombre_producto"];
        $resultado["precio"] = $row["coste_producto"];
    }
   return json_encode($resultado);
   closeDB();
}

我有警告在PHP检查一切都很好,但第二个函数没有进入他的PHP,它返回未定义未定义没有显示PHP的任何警告,这就是为什么我认为第二个函数有一些问题,以达到他的PHP,但URL是正确的,文件位于正确的地方。

谢谢你的阅读,对不起我的英语。

尝试在为$resultado赋值之前将其定义为数组。不确定,但在某些配置中,这确实会破坏PHP。

function obtenerProductos($idProd) {
    conectDB();
    $sql = 'select * from Productos where id_producto="' . $idProd . '";';
    $resul = mysql_query($sql);
    $resultado = array();
    while ($row = mysql_fetch_array($resul)) {
        $resultado["nombre"] = $row["nombre_producto"];
        $resultado["precio"] = $row["coste_producto"];
    }
   return json_encode($resultado);
   closeDB();
}