manipulacion de data con navigator

24 views
Skip to first unread message

roesgt

unread,
Jun 7, 2012, 5:36:28 PM6/7/12
to jQuery4PHP
ayer con la ayuda de oyepez pues logre realizar solucuiones pero sigo
entrampado con algo mas

en el data.php donde manipulo la informacion con $_POST he logrado
obtener infornacion para agregar a la base de datos

me decian que para saber que operacion estaria realizando era atravez
de $_POST['oper'], y lo cual es acertado
pero solo me funciona para agregar informacion en este caso trae add
pero para lo que corresponde edit y delete no funciona.............
que estare haciendo mal

gracias de antemano por su aydua

oyepez003

unread,
Jun 7, 2012, 6:04:40 PM6/7/12
to jquer...@googlegroups.com
Disculpa el valor de $_POST['oper'] para eliminar es 'del' y no delete como escribi ayer

Y para modificar es 'edit'

Tambien ten en cuenta colocar una columna de tipo id... que sera el identificador del registro:

$idGridField = new YsGridField('id', 'Id');

$grid->addGridField($idGridField);

Saludos.

roesgt

unread,
Jun 7, 2012, 7:40:19 PM6/7/12
to jQuery4PHP
mmmmmmmmm ok ya probe y sigo en las mismas
no logro ni modificar ni eliminar.... no se como poder comprobar que
informacion esta llegando al data.php
pero lo raro que si logro insertar o sea el add pero no logro ni
eliminar ni modificar...

sera que tendre que aplicar otro truquillo que no lo se??

gracias por la ayuda

oyepez003

unread,
Jun 7, 2012, 8:18:09 PM6/7/12
to jquer...@googlegroups.com
Quizas podamos ayudar si publicas algo de codigo.

Saludos.

P.D.

No copies y pegues el codigo, Te recomandamos usar pastebin.com o algo parecido.

roesgt

unread,
Jun 8, 2012, 11:55:53 AM6/8/12
to jQuery4PHP
ok....
el codigo de navigator es el siguiente

<?php

YsJQuery::useComponent(YsJQueryConstant::COMPONENT_JQGRID);

$grid = new YsGrid('gridId','Manipulacion BUSES');

$busGridField = new YsGridField('bus', 'Bus');
$busGridField->setEditable(true);
$busGridField->setWidth(40);
$instGridField = new YsGridField('institucion', 'Institucion');
$instGridField->setEditable(true);
$instGridField->setWidth(200);
$placaGridField = new YsGridField('placa', 'Placa');
$placaGridField->setEditable(true);
$placaGridField->setWidth(90);
$marcaGridField = new YsGridField('marca', 'Marca');
$marcaGridField->setEditable(true);
$cupoGridField = new YsGridField('cupo', 'Capacidad');
$cupoGridField->setEditable(true);
$cupoGridField->setWidth(90);
$motorGridField = new YsGridField('motor', 'Motor');
$motorGridField->setEditable(true);
$chasisGridField = new YsGridField('chasis', 'Chasis');
$chasisGridField->setEditable(true);
$modeloGridField = new YsGridField('modelo', 'Modelo');
$modeloGridField->setEditable(true);
$modeloGridField->setWidth(60);
$fotoGridField = new YsGridField('foto', 'Fotografia');
$fotoGridField->setEditable(true);
$estGridField = new YsGridField('estado', 'Estado');
$estGridField->setEditable(true);
$estGridField->setWidth(60);

$grid->addGridFields($busGridField, $instGridField, $placaGridField,
$marcaGridField, $cupoGridField, $motorGridField, $chasisGridField,
$modeloGridField, $fotoGridField, $estGridField
);

$recordList = new YsGridRecordList();
$db = new cDB();
$db->Connect(HOST, DB_COL, USUARIO, PASS);

$sql = "SELECT b.*,i.nombre
FROM `bus` b
JOIN `institucion` i ON (b.institucion = i.institucion)
";

$rs = $db->Query($sql);
if ($fila = $db->First($rs))
{ do {$record = new YsGridRecord();
$record->setAttribute('bus', $fila['BUS']);
$record->setAttribute('institucion', $fila['nombre']);
$record->setAttribute('placa', $fila['placa']);
$record->setAttribute('marca', $fila['marca']);
$record->setAttribute('cupo', $fila['capacidad']);
$record->setAttribute('motor', $fila['numero_motor']);
$record->setAttribute('chasis', $fila['numero_chasis']);
$record->setAttribute('modelo', $fila['modelo']);
$record->setAttribute('foto', $fila['fotografia']);
$record->setAttribute('estado', $fila['estado']);
$recordList->append($record);
} while($fila = $db->Next($rs));
}

$grid->setRecordList($recordList);

$grid->setWidth("125%");
$grid->setDataType(YsGridConstants::DATA_TYPE_LOCAL);
$grid->setRowNum($db->GetNumRows($rs));
$grid->setRowList(array(3,5,10));
$grid->setViewRecords(true);
$grid->setSortname('bus');

$navigator = new YsGridNavigator();

$form = new YsGridForm();
$form->setUrl('manejoDataDel.php');
$form->setHeight(400);
$form->setReloadAfterSubmit(false);
$form->setLeft(100);

$navigator->setEditForm($form);
$naavigator->setEditText('Modificar');

$navigator->setAddTitle('Proceso de Agregacion Buses');
$navigator->setAddForm($form);
$navigator->setAddText('Agregar');

$navigator->setDelTitle('Eliminar informacion');
$navigator->setDeleteForm($form);
$navigator->setDelText('Eliminar');

$grid->setNavigator($navigator);

?>

<button id="btnOpenDialog">Ver Info</button>

<?php echo YsUIDialog::initWidget('dialogId','style="display:none"
title="Listado de Buses"') ?>
<?php echo $grid->renderTemplate() ?>
<?php echo YsUIDialog::endWidget() ?>

<?php
echo
YsJQuery::newInstance()
->onClick()
->in('#btnOpenDialog')
->execute(
YsUIDialog::build('#dialogId')
->_modal(true)
->_width(1250)
->_zIndex(100)
->_height(480)
->_buttons(array(
'Ok' => new YsJsFunction('alert("que chofo")'),
'Close' => new YsJsFunction(YsUIDialog::close('this')))
)
)
?>

<?php
echo $grid->execute();
$db->Disconnect();
?>

=======================================
el codigo del data es

<?php

$operacion = $_POST['oper'];

$id_bus = $_POST['bus'];
$id_institucion = $_POST['institucion'];
$dato_placa = $_POST['placa'];
$dato_marca = $_POST['marca'];
$dato_capacidad = $_POST['cupo'];
$dato_motor = $_POST['motor'];
$dato_chasis = $_POST['chasis'];
$dato_modelo = $_POST['modelo'];
$dato_foto = $_POST['foto'];
$dato_estado = $_POST['estado'];

$datos = array ("BUS" => $id_bus,'institucion' =>
$id_institucion,'placa' => $dato_placa,'marca' => $dato_marca,
'capacidad' => $dato_capacidad,
'numero_motor' => $dato_motor,'numero_chasis' =>
$dato_chasis,'modelo' => $dato_modelo,'fotografia' =>
$dato_foto,'estado' => $dato_estado);

$db = new cDB();
$db->Connect(HOST, DB_COL, USUARIO, PASS);

$where = sprintf(" BUS = %d ",$id_bus);
//$rs = $db->Update('bus', $datos, $where);

if (strcmp($operacion,'del') == 0 )
{ $rs = $db->Delete('bus', $where); }

?>

-------------------

oyepez003

unread,
Jun 8, 2012, 2:35:24 PM6/8/12
to jquer...@googlegroups.com
Hola roesgt.

Pruedes hacer echo de $_POST['oper'];

aver que valor te muestra.

y el if lo puedes hacer simplemente asi:

 if ($operacion==='del')
   { $rs = $db->Delete('bus', $where); }

Saludos.

roesgt

unread,
Jun 8, 2012, 2:42:40 PM6/8/12
to jQuery4PHP
le he dado echo a $_POST['oper'], pero como es una ventana
emergente.... no muestra nada
pero la misma operacion del if realize con el add, y alli si funciona

con el del no hace nada y tampoco quita el registro del grid

con el edit si modifica la infomacion del grid pero no hace nada en la
parte del data
y las instrucciones que manipulan la BDD, son funcionales, porque son
las que utilizo para mis proyectos


gracias por el apoyo y la ayuda

oyepez003

unread,
Jun 8, 2012, 2:57:29 PM6/8/12
to jquer...@googlegroups.com
Lo unico que puedo ver en tu codigo es que obtienes los parametros de la variable $_POST en cualquier caso.

Para "add" y para "edit" esta bien que lo hagas ya que el grid envia esos parametros.

Pero para la accion "del" el grid solo envia el id de la fila.... asi que si haces:

$dato_placa     = $_POST['placa'];

Lo mas seguro es que este dando un error "undefined index" por que no existe $_POST['placa'];

Asi que antes de hacer 

$dato_placa     = $_POST['placa'];

debes verificar que la operacion no sea "del" o que exista $_POST['placa']

roesgt

unread,
Jun 8, 2012, 2:53:14 PM6/8/12
to jQuery4PHP
nop sigue igual... el echo no funciona

On 8 jun, 12:35, oyepez003 <oyepez...@gmail.com> wrote:

roesgt

unread,
Jun 8, 2012, 3:05:28 PM6/8/12
to jQuery4PHP
ok.... probare y te cuento........... gracias

roesgt

unread,
Jun 8, 2012, 4:31:10 PM6/8/12
to jQuery4PHP
ok.-..... creo que la curva de aprendizaje es muy alta.... necesitaria
uff mucho tiempo para poder aplicar estas librerias... son
interesantes pero con poco manual..... se vuelve tedioso venir y tener
que ir al codigo de cada metodo para ver que puedo utilizar.
> > > > > > > > > pero solo me funciona para agregar informacion en este caso...
>
> leer más »

oyepez003

unread,
Jun 8, 2012, 4:41:48 PM6/8/12
to jquer...@googlegroups.com
Si... estamos trabajando en la documentacion de la libreria pero por ahora estamos colocando todo nuestro esfuerzo a la integracion son Symfony2.

Asi que la documentacion la vamos a hacer pero tardara un poco.
Reply all
Reply to author
Forward
0 new messages