2014-05-19 2 views
0

다른 PHP 파일을 호출하는 PHP 파일에서 ajax를 사용하려고하면 문제가 발생합니다. 나는 모든 카테고리의 제품을 얻을에 인쇄하려면 HTML을받을 수있는 첫 번째 PHP (getProductos.php)에 호출이 스크립트의 첫 번째 함수에서PHP와 JQuery에서 Ajax를 사용하는 중에 오류가 발생했습니다.

<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 파일의 코드 양식. 두 번째 함수는 다른 제품 (getProducto.php)을 호출하여 선택한 제품의 모든 정보를 가져 와서 다른 div에 인쇄합니다. 여기에 PHP 파일이 있습니다.

getProductos.php

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

getProducto.php (망가 작품) (이 작품)

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

그리고이 코드의 두 기능 :

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

알림이 t 안에 있습니다. 그는 PHP가 모든 것이 잘되고 있는지 확인하지만 두 번째 함수는 PHP에 입력하지 않습니다. PHP는 아무런 경고없이 PHP가 정의되지 않은 값을 반환합니다. 두 번째 함수는 PHP에 도달하는 데 문제가 있지만 URL은 정확하다고 생각합니다. 파일은 올바른 위치에 있습니다.

영어로 읽어 주셔서 감사 드리며 죄송합니다.

+0

어디에서 JS 함수 obtenerProducto가 호출 되었습니까? –

+0

PHP에서'$ query'를 echo하고 js에서 경고합니다. 어떤 쿼리가 실행되고 있는지 확인합니다. –

+0

obtenerProductosCategorias 함수에 의해 생성 된 입력의 onclick 이벤트에서 – F90

답변

0

아무 것도 지정하기 전에 $ 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(); 
} 
관련 문제