Foros del Web » Programando para Internet » Javascript » Frameworks JS »

NuSOAP-AJAX

Estas en el tema de NuSOAP-AJAX en el foro de Frameworks JS en Foros del Web. Hola a todos, mi pregunta principal es se estos dos toolkits (NuSOAP y AJAX) tienen algún problema para convivir ya que estoy intentando desarrollar un ...
  #1 (permalink)  
Antiguo 02/03/2006, 10:22
 
Fecha de Ingreso: diciembre-2005
Ubicación: Ciudad de México
Mensajes: 45
Antigüedad: 18 años, 11 meses
Puntos: 1
NuSOAP-AJAX

Hola a todos,

mi pregunta principal es se estos dos toolkits (NuSOAP y AJAX) tienen algún problema para convivir ya que estoy intentando desarrollar un cliente para un webservice con ajax. El problema es que el servidor del webservice ya lo prove con un cliente php y funciona a la perfección, pero al intentar usarlo con un cliente programado con SAJAX(php) un método remoto me devuelve basura en lugar de la cadena esperada. Y aquí les presento algo del código:

Servidor
Código:
<?php
require_once('lib/nusoap.php');

global $conexion1;
global $conexion2;
global $con1;
global $con2;
$con1=$con2=true;
$servicio1 = new soap_server();
$servicio1->configureWSDL('modificawsdl', 'urn:modificawsdl');
// Register the method to expose
$servicio1->register('consulta',                // nombre del método
    array('cadSql' => 'xsd:string'),        // parámetros de entrada
    array('return' => 'xsd:string'),      // parámetros de salida
    'urn:consultawsdl',                      // espacio de nombres
    'urn:consultawsdl#consulta',                // soapaction
    'rpc',                                // style
    'encoded',                            // use
    'Realiza una lectura a la base de datos'            // documentation
);

$servicio1->register('modifica',                //nombre del método
    array('cadSql' => 'xsd:string'),        // parámetros de entrada
    array('return' => 'xsd:string'),      // parámetros de salida
    'urn:modificawsdl',                      // espacio de nombred
    'urn:modificawsdl#modifica',                // soapaction
    'rpc',                                // style
    'encoded',                            // use
    'Realiza una modificación a la base de datos'            // documentación
);

function conecta(){
    global $conexion1;
    global $conexion2;
    global $con1;
    global $con2;
    $conexion1 = mysql_connect('10.27.4.29:3306', 'root', 'mgalicia');
    $host="10.27.4.9";
    $puerto="54323";
    $base="prueba";
    $usr="mario";
    $cve="mario";
    $conexion2=pg_connect("host=$host port=$puerto user=$usr password=$cve dbname=$base");
    //actualiza();
    if(!$conexion1)
        $con1=false;
    else
        $con1=true;
    if(!$conexion2)
        $con2=false;
    else
        $con2=true;
}

function actualiza(){
    global $conexion1;
    global $conexion2;
    global $con1;
    global $con2;
    $borra=false;
    if($con1&&$con2)
        return true;
    if(file_exists("res.rep"))
        if(!($cad=file_get_contents("res.rep")))
            return false;
        else{
            $arreglo=explode("@",$cad);
            if(!$con1&&($conexion1!=false)){
                foreach ($arreglo as $query)
                    mysql_query($query,$conexion1);
                $borra=true;
                    
            }
            if(!$con2&&($conexion2!=false)){
                foreach ($arreglo as $query)
                    pg_query($conexion2,$query);
                $borra=true;
            }
            if($borra)
                unlink("res.rep");
            return true;
        }
    else
        return true;
}

//Funciones remotas
function consulta($cadSql){
    global $conexion1;
    global $conexion2;
    global $con1;
    global $con2;    
    conecta();
    if($con1&&$con2){
        $cad="";
        $resultado=mysql_query($cadSql,$conexion1);
        for($c=0; $c<pg_num_rows($resultado); $c++){
            $mbusqueda=mysql_fetch_assoc($resultado,$c);
            foreach ($mbusqueda as $valor)
                if($cad=="")
                    $cad=$valor;
                else
                    $cad=$cad.",".$valor;
        }
        mysql_close($conexion1);
        pg_close($conexion2);
    }
    else
        if($con1){
            $cad="";
            $resultado=mysql_query($cadSql,$conexion1);

            for($c=0; $c<pg_num_rows($resultado); $c++){
                $mbusqueda=mysql_fetch_assoc($resultado,$c);
                foreach ($mbusqueda as $valor)
                    if($cad=="")
                        $cad=$valor;
                    else
                        $cad=$cad.",".$valor;
            }
            mysql_close($conexion1);
        }
        else
            if($con2){
                $cad="";
                $resultado=pg_query($conexion2,$cadSql);
                if($resultado==false)
                    return false;
                for($c=0; $c<pg_num_rows($resultado); $c++){
                    $matres=pg_fetch_assoc($resultado,$c);                    
                    foreach ($matres as $valor)
                        if($cad=="")
                            $cad=$valor;
                        else
                            $cad=$cad.",".$valor;
                pg_close($conexion2);
                }
            }
            else{
                return false;
            }
    return $cad;    
}

function modifica($cadSql){
    global $conexion1;
    global $conexion2;
    global $con1;
    global $con2;
    conecta();
    if($con1&&$con2){
        pg_query($conexion2,$cadSql);
        pg_close($conexion2);
        mysql_query($cadSql,$conexion1);
        mysql_close($conexion);
    }
    else
        if($con1){
            mysql_query($cadSql,$conexion1);
            mysql_close($conexion);
            $file=fopen("resp.rep","a");
            fwrite($file,$cadSql."con2@");
            fclose($file);
        }
        else
            if($con2){
                pg_query($conexion2,$cadSql);
                pg_close($conexion2);
                $file=fopen("resp.rep","a");
                fwrite($file,$cadSql)."con1@";
                fclose($file);
            }
            else{
                return false;
            }
    return true;
}

// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$servicio1->service($HTTP_RAW_POST_DATA);
?>

Función cliente

Código:
require("Sajax.php");
    require_once('lib/nusoap.php');
    global $cliente1;
    $cliente1 = new soapclient('http://10.27.4.9/~mgalicia/webservices/nusoap/pru4wsdl.xml', true);

    function busca($apellido_pat_autor,$nombre_autor){
        global $cliente1;
        $nom=$apellido_pat_autor." ".$nombre_autor;
        $pru=verificaAutor($nom);
        $param=array('cadSql' => "SELECT * FROM autor INNER JOIN libro on (autor.id_autor=libro.id_autor) WHERE nombre_autor ='Kundera Milan';");
        $result = $cliente1->call('consulta', $param);
        $rbusqueda=explode(",",$result);
        $cad="";
        foreach($rbusqueda as $val)
            if($cad!="")
                $cad=$cad.",'".$val."'";
            else
                $cad="'".$val."'";
        //"'".pg_fetch_result($rbusqueda,0,"nombre_libro")."','".pg_fetch_result($rbusqueda,0,"ciudad_autor")."','".pg_fetch_result($rbusqueda,0,"id_autor")."','".pg_fetch_result($rbusqueda,0,"id_libro")."'";
        return $result;
    }

función cliente javascript
Código:
function do_busca_cb(z) {
        arrBusca=eval("new Array(" + z +")");
        actualizaCampos();
        do_listaLibros();
    }
    
    function do_busca() {
        var x, y;
        x = document.getElementById("apellido_pat_autor").value;
        y = document.getElementById("nombre_autor").value;
        x_busca(x, y, do_busca_cb);
        arrBusca=new Array();
    }
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:49.