Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/04/2013, 06:39
Wainman
 
Fecha de Ingreso: abril-2012
Mensajes: 15
Antigüedad: 12 años, 7 meses
Puntos: 0
Grid con java, no actualiza datos.

Buenos dias. Tengo un problema. Modifique el codigo de un grid que encontre por internet y no logro que funcione. Solo me muestra los datos en el grid, de ahi en mas no funciona nada.

Mil gracias a lo que ayudan en estos foros!!

Codigo del de la tabla (index.php)

Código PHP:
<?php
/**
 * Autor: Lucas Forchino
 * Web: http://www.tutorialjquery.com
 *
 */
include_once ("clase.php");// incluyo las clases a ser usadas
$action='index';
if(isset(
$_POST['action']))
{
$action=$_POST['action'];}


$view= new stdClass(); // creo una clase standard para contener la vista
$view->disableLayout=false;// marca si usa o no el layout , si no lo usa imprime directamente el template




// para no utilizar un framework y simplificar las cosas uso este switch, la idea
// es que puedan apreciar facilmente cuales son las operaciones que se realizan
switch ($action)
{
    case 
'index':
        
$view->materiales=Material::getMateriales(); // tree todos los materiales
        
$view->contentTemplate="templates/clientesGrid.php"// seteo el template que se va a mostrar
        
break;
    case 
'refreshGrid':
        
$view->disableLayout=true// no usa el layout
        
$view->materiales=Material::getMateriales();
        
$view->contentTemplate="templates/clientesGrid.php"// seteo el template que se va a mostrar
        
break;
    case 
'saveClient':
        
// limpio todos los valores antes de guardarlos
        // por ls dudas venga algo raro
        
$id=intval($_POST['codmat']);
        
$codarea=cleanString($_POST['codarea']);
        
$codrubro=cleanString($_POST['codrubro']);
        
$codsubrub=cleanString($_POST['codsubrub']);
        
$secuencia=cleanString($_POST['secuencia']);
        
$nombre=cleanString($_POST['nombre']);
        
        
$material=new Material($codmat);
        
$material->setcodarea($codarea);
        
$material->setcodrubro($codrubro);
        
$material->setcodsubrub($codsubrub);
        
$material->setsecuencia($secuencia);
        
$material->setnombre($nombre);
        
$material->save();
        break;
        
    case 
'newClient':
        
$view->client=new Material();
        
$view->label='Nuevo Material';
        
$view->disableLayout=true;
        
$view->contentTemplate="templates/clientForm.php"// seteo el template que se va a mostrar
        
break;
    case 
'editClient':
        
$editId=intval($_POST['id']);
        
$view->label='Editar Material';
        
$view->client=new Material($editId);
        
$view->disableLayout=true;
        
$view->contentTemplate="templates/clientForm.php"// seteo el template que se va a mostrar
        
break;
    case 
'deleteClient':
        
$codmat=intval($_POST['codmat']);
        
$client=new Material($codmat);
        
$client->delete();
        die; 
// no quiero mostrar nada cuando borra , solo devuelve el control.
        
break;
    default :
}

// si esta deshabilitado el layout solo imprime el template
if ($view->disableLayout==true)
{include_once (
$view->contentTemplate);}
else
{include_once (
'templates/layout.php');} // el layout incluye el template adentro
Codigo del java (functions.js):
Código:
/**
 * Autor: Lucas Forchino
 * Web: http://www.tutorialjquery.com
 *
 */
$(document).ready(function(){ //cuando el html fue cargado iniciar

    //añado la posibilidad de editar al presionar sobre edit
    $('.edit').live('click',function(){
        //this = es el elemento sobre el que se hizo click en este caso el link
        //obtengo el codigomat que guardamos en data-id
        var id=$(this).attr('data-id');
        //preparo los parametros
        params={};
        params.id=id;
        params.action="editClient";
        $('#popupbox').load('index.php', params,function(){
            $('#block').show();
            $('#popupbox').show();
        })

    })

    $('.delete').live('click',function(){
        //obtengo el id que guardamos en data-id
        var id=$(this).attr('data-id');
        //preparo los parametros
        params={};
        params.id=id;
        params.action="deleteClient";
        $('#popupbox').load('index.php', params,function(){
            $('#content').load('index.php',{action:"refreshGrid"});
        })

    })

    $('#new').live('click',function(){
        params={};
        params.action="newClient";
        $('#popupbox').load('index.php', params,function(){
            $('#block').show();
            $('#popupbox').show();
        })
    })


    $('#client').live('submit',function(){
        var params={};
        params.action='saveClient';
        params.id=$('#id').val();
        params.codarea=$('#codarea').val();
        params.codrubro=$('#codrubro').val();
        params.codsubrub=$('#codsubrub').val();
        params.secuencia=$('#secuencia').val();
		params.nombre=$('#nombre').val();
        $.post('index.php',params,function(){
            $('#block').hide();
            $('#popupbox').hide();
            $('#content').load('index.php',{action:"refreshGrid"});
        })
        return false;
    })


    // boton cancelar, uso live en lugar de bind para que tome cualquier boton
    // nuevo que pueda aparecer
    $('#cancel').live('click',function(){
        $('#block').hide();
        $('#popupbox').hide();
    })


})

NS={};
Codigo del grid (Clientesgrid.php)
Código PHP:
<div class="bar">
    <a id="new" class="button" href="javascript:void(0);">Nuevo Material</a>

</div>


<table>
    <thead>
        <tr>
            <th>Codigo</th>
            <th>Area</th>
            <th>Rubro</th>
            <th>Subrubro</th>
            <th>Secuencia</th>
            <th>Nombre</th>
            <th>Editar</th>
            <th>Borrar</th>
        </tr>
    </thead>
    <tbody>
    
        <?php foreach ($view->materiales as $material):  // uso la otra sintaxis de php para templates ?>
            <tr>
                <td><?php echo $material['codmat'];?></td>
                <td><?php echo $material['codarea'];?></td>
                <td><?php echo $material['codrubro'];?></td>
                <td><?php echo $material['codsubrub'];?></td>
                <td><?php echo $material['secuencia'];?></td>
                <td><?php echo $material['nombre'];?></td>
                <td><a class="edit" href="javascript:void(0);" data-id="<?php echo $material['codmat'] ;?>"> Editar </a></td>
              
                <td><a class="delete" href="javascript:void(0);" data-id="<?php echo $material['codmat'];?>">Borrar</a></td>
            </tr>
        <?php endforeach;?>
        
    </tbody>
</table>

POr ultimo el cartel de modificacion de datos: (clientForm.php)

Código PHP:
<h2><?php echo $view->label ?></h2>
<form name ="client" id="client" method="POST" action="index.php">
    <input type="hidden" name="id" id="id" value="<?php print $view->client->getId() ?>">
       <div>
        <label>Codigo</label>
        <input type="text" name="codmat" id="codmat"value = "<?php print $view->client->getId() ?>">
    </div>
   
    <div>
        <label>Area</label>
        <input type="text" name="codarea" id="codarea" value = "<?php print $view->client->getCodarea() ?>">
    </div>
    <div>
        <label>Rubro</label>
        <input type="text" name="codrubro" id="codrubro"value = "<?php print $view->client->getCodrubro() ?>">
    </div>
    <div>
        <label>Subrubro</label>
        <input type="text" name="codsubrub" id="codsubrub" value = "<?php print $view->client->getCodsubrub() ?>">
    </div>
    <div>
        <label>Secuencia</label>
        <input type="text" name="secuencia" id="peso" value = "<?php print $view->client->getSecuencia() ?>">
    </div>
        <div>
        <label>Nombre</label>
        <input type="text" name="nombre" id="nombre" value = "<?php print $view->client->getNombre() ?>">
    </div>
    <div class="buttonsBar">
        <input id="cancel" type="button" value ="Cancelar" />
        <input id="submit" type="submit" name="submit" value ="Guardar" />
    </div>
</form>