Guardar cambios en SlickGrid con php
jquery mysql (1)
Tengo una configuración SlickGrid, está leyendo datos de mi base de datos con PHP, mi problema está surgiendo cuando trato de guardar los datos en mi base de datos, estoy tratando de usar JSON para darme una matriz que luego puedo usar para escribir de nuevo a la base de datos, he visto este hilo explicando esto:
Así que tengo el elemento de formulario oculto en mi código, y estoy usando JSON para codificar la variable de datos, la asigno a la entrada oculta de datos en el formulario, este formulario se publica en una página llamada save_price.php, el problema es cuando imprimo_r , o var_dump la variable de datos, obtengo nulo como salida, creo que podría tener algo que ver con cómo estoy usando PHP para agregar el contenido a la variable de datos, o bien eso o estoy haciendo algo realmente obviamente incorrecto, ojalá Puedo ver cuál es el problema, no hay una gran cantidad de documentación en línea sobre cómo recuperar / guardar en un archivo db con PHP, así que estoy un poco atrapado golpeando mi cabeza contra la pared en este caso, aquí está mi código:
Ok, encontré el problema, solo en caso de que alguien esté luchando para que todo esto funcione, aquí está el código de trabajo, obtiene datos de una base de datos, luego envía los datos modificados a otra página para su procesamiento, necesita un poco de refinamientos , eso sucederá una vez que lo tenga todo implementado:
<?php
include("includes/check_session.php");
require_once(''includes/functions.php'');
require_once(''includes/config.php'');
$data = '''';
$i = 0;
$query = "
SELECT * FROM `prices`";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$data .= ''
data[''.$i.''] = {
id: "''.$row[''id''].''",
title: "''.$row[''title''].''",
duration: "''.$row[''duration''].''",
percentComplete: "''.$row[''percentComplete''].''",
start: "''.$row[''start''].''",
finish: "''.$row[''finish''].''",
effortDriven: "''.$row[''effortDriven''].''"
};
'';
$i++;
echo $data;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<?php // include("includes/cms_head_scripts.php"); ?>
<link rel="stylesheet" href="css/slick.grid.css" type="text/css" media="screen" charset="utf-8" />
<link rel="stylesheet" href="css/smoothness/jquery-ui-1.8.5.custom.css" type="text/css" media="screen" charset="utf-8" />
<link rel="stylesheet" href="css/examples.css" type="text/css" media="screen" charset="utf-8" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script language="javascript" src="js/jquery.json.js"></script>
</head>
<body>
<div id="content_cont">
<div id="main">
<div style="position:relative">
<div style="width:600px;">
<div id="myGrid" style="width:100%;height:500px;"></div>
</div>
</div>
pricing
</div><!-- #main -->
</div><!-- #content_cont -->
<script src="lib/firebugx.js"></script>
<script src="lib/jquery-ui-1.8.5.custom.min.js"></script>
<script src="lib/jquery.event.drag-2.0.min.js"></script>
<script src="slick.core.js"></script>
<script src="plugins/slick.cellrangeselector.js"></script>
<script src="plugins/slick.cellselectionmodel.js"></script>
<script src="slick.editors.js"></script>
<script src="slick.grid.js"></script>
<script type="text/javascript">
var grid;
var data = [];
var columns = [
{id:"title", name:"Title", field:"title", editor:TextCellEditor},
{id:"duration", name:"Duration", field:"duration", editor:TextCellEditor},
{id:"%", name:"% Complete", field:"percentComplete", editor:TextCellEditor},
{id:"start", name:"Start", field:"start", editor:TextCellEditor},
{id:"finish", name:"Finish", field:"finish", editor:TextCellEditor},
{id:"effort-driven", name:"Effort Driven", field:"effortDriven", editor:TextCellEditor}
];
var options = {
editable: true,
enableCellNavigation: true,
asyncEditorLoading: false,
autoEdit: true
};
$(function() {
<?php echo $data ?>
grid = new Slick.Grid($("#myGrid"), data, columns, options);
})
</script>
<form method="POST" action="save_price.php">
<input type="submit" value="Save">
<input type="hidden" name="data" value="">
</form>
<script type="text/javascript">
$(function() {
$("form").submit(
function() {
$("input[name=''data'']").val($.JSON.encode(data));
}
);
});
</script>
</body>
</html>