Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2014, 08:50
vmelero
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 13 años, 7 meses
Puntos: 1
Problemas con petición ajax, jquery y php

Hola a todos!
A ver si me podéis ayudar, porque estoy bastante perdida con el ajax y jquery.
Cuando el usuario haga clic desde la pag. principal en el enlace de asociados, se deberá cargar la pagina asociados.html con todas las empresas que estén registradas.
Estos datos se deben recuperar de una tabla llamada empresas.

Os muestro el código que tengo implementado en asociados.html

Código:
<!DOCTYPE html>
<html lang="es">
    <head>
        <title>Asociación de comerciantes de Dénia</title>
        <meta charset="UTF-8">           
        <meta content="asociación de comerciantes en denia" name="description">
        <link media="screen" href="estilComer.css" type="text/css" rel="stylesheet">  
        <link rel="stylesheet" type="text/css" media="screen" href="jqgrid/css/ui.jqgrid.css" />
        
        <script type="text/javascript" src="js/ajax.js"></script>
        <script type="text/javascript" src="js/funciones.js"></script> 
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
        <script src="jqgrid/js/i18n/grid.locale-es.js" type="text/javascript"></script>
        <script src="jqgrid/js/jquery.jqGrid.min.js" type="text/javascript"></script>
    </head>
    <body> 
         <script language="javascript">
           $(document).ready(function(){
           jQuery("#nomemp").jqGrid({
                cache:false,
                data:'todos',    
                url:'Valida.php', 
                datatype:'json',
                mtype:'POST',
                colNames:['ID','RAZONSOCIAL', 'NIF','TELEFONO','DIRECCION', 'WEB'],
                colModel:[
                        {name:'idEmpresa', index:'idEmpresa', width:5, resizable:false, sortable:true},
                        {name:'RazonSocial', index:'RazonSocial', width:150, resizable:false, sortable:true},
                        {name:'nif', index:'nif', width:15,resizable:false},
                        {name:'telefono', index:'telefono', width:15},
                        {name:'direccion', index:'direccion', width:60},
                        {name:'web', index:'web', width:155}
                    ],
                sortname:'RazonSocial',
                sortorder:"asc",
                viewrecords:true,
                caption: 'EMPRESAS'
             });
             
         });
        </script>          
         <div id="cabecera"> 
             <img id ="DibCab" src="images/shopping.png">
             <div id="cabecera-In"></div>
         </div>
          <div class="AllContent">  
            <div id="menu">                
                <ul>
                    <li><a href="ascomDenia.html">Inicio</a></li>
                    <li><a href="login.html">Area privada</a></li>                   
                    <li><a href="#">Asociados</a></li>
                    <li><a href="#">Noticias</a></li>
                    <li><a href="contacto.html">Contacto</a></li> 
                </ul>
            </div>            
                <div id="contenidoIzq">  
                    <h2>Guia de asociados </h2> 
                    <div class="Datos"> 
                        <table id="nomemp"></table>
                    </div>
                </div>              
            </div>
    </body>
</html>
En Valida.php tengo lo siguiente:

Código PHP:
<?php

if (isset($_POST['todos'])){     
     
$varEmpresa = new empresa();
     
$resul $varEmpresa->DevolverEmpresas();
     echo 
$resul;
     }
else
{.....}

class 
empresa{
    
    private 
$fNifEmpresa;
    private 
$razonSocial;
    private 
$direccion;    
    private 
$web;
    private 
$gesBD;
    private 
$tel;
    
   public function 
__Construct()
   {
        require (
"GestionEmpresas.php");
        
$this->gesBD = new GestionEmpresa();
   }
    
   public function 
getNifEmpresa(){return $this->fNifEmpresa;}
   
   public function 
getRazonSocial(){return $this->razonSocial;}

   public function 
DevolverEmpresas()
   {
     return 
$this->gesBD->DevolverTodasEmpresas();
   }
}
Y por útlimo en GestionEmpresas.php lo siguiente:

Código PHP:
<?php

class GestionEmpresa
{
//Configuracion de la conexion a base de datos
    
public static $BD "gescomercios"
    public 
$id_Conection="";
    public 
$NumRegistrosDevueltos=0;
    public 
$identEmpresa="";
    
 function 
__construct()
    {
        
$this->EstablecerConexion();
       
    }
    
   function 
__destruct() {
        
mysql_close($this->id_Conection);
    }
   
//Abrimos conexión
public function EstablecerConexion(){
    
     
$this->id_Conection= @mysql_connect('localhost','root','') or 
                die(
"No se ha podido establecer conexión con la base de datos");
            
mysql_select_db(self::$BD$this->id_Conection);
            
 
}.....
  public function 
DevolverTodasEmpresas()
  {
    
    
$sql"select idEmpresa,razonsocial,telefono,direccion,web from empresa";
    
$result = @mysql_query($sql) or die ("Función DevolverTodasEmpresas: Error al devolver las empresas");
    
$i=0;
    
$respuesta = new stdClass();
    while( 
$fila $result->fetch_assoc() ) {
        
$respuesta->rows[$i]['id']=$fila["idEmpresa"];
        
$respuesta->rows[$i]['cell']=array($fila["idEmpresa"],$fila["razonsocial"],$fila["telefono"],$fila["direccion"],$fila["web"]);
        
$i++;
    }
    echo 
json_encode($respuesta);
    
  }  
}
?>
No me recupera nada, y trazando el código hasta donde he sabido me aparece lo siguiente:

[Exception... "An invalid or illegal string was specified" code: "12" nsresult: "0x8053000c (SyntaxError)" location: "<unknown>"]

y después este otro
TypeError: jQuery(...).jqGrid is not a function

A ver si me podéis ayudar y aconsejar sobre la mejor forma de implementar el código.

Gracias de antemano