jsQGRID και POST

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
Geotenia
Δημοσιεύσεις: 40
Εγγραφή: 15 Μαρ 2011 09:55

jsQGRID και POST

Δημοσίευση από Geotenia » 22 Αύγ 2011 21:11

Προσπαθώ να καταλάβω τον τρόπο χρήσης του jsQGRID.

Εχω λοιπόν το παρακάτω myfirstgrid.html που είναι απο το παράδειγμα στη σελίδα τους.

Κώδικας: Επιλογή όλων

<script src="https&#58;//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/rowedex3.js" type="text/javascript"> </script>

</head>
<body>
<table id="rowed3"></table>
<div id="prowed3"></div>
<br>
</body>
</html>
και το rowed3.je είναι

Κώδικας: Επιλογή όλων

$&#40;function&#40;&#41;&#123; 
var lastsel;
jQuery&#40;"#rowed3"&#41;.jqGrid&#40;&#123;
   	url&#58;'server.php?q=2',
	datatype&#58; "json",
   	colNames&#58;&#91;'Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'&#93;,
   	colModel&#58;&#91;
   		&#123;name&#58;'id',index&#58;'id', width&#58;55&#125;,
   		&#123;name&#58;'invdate',index&#58;'invdate', width&#58;90, editable&#58;true&#125;,
   		&#123;name&#58;'name',index&#58;'name', width&#58;100,editable&#58;true&#125;,
   		&#123;name&#58;'amount',index&#58;'amount', width&#58;80, align&#58;"right",editable&#58;true&#125;,
   		&#123;name&#58;'tax',index&#58;'tax', width&#58;80, align&#58;"right",editable&#58;true&#125;,		
   		&#123;name&#58;'total',index&#58;'total', width&#58;80,align&#58;"right",editable&#58;true&#125;,		
   		&#123;name&#58;'note',index&#58;'note', width&#58;150, sortable&#58;false,editable&#58;true&#125;		
   	&#93;,
   	rowNum&#58;10,
   	rowList&#58;&#91;10,20,30&#93;,
   	pager&#58; '#prowed3',
   	sortname&#58; 'id',
    viewrecords&#58; true,
    sortorder&#58; "asc",
	onSelectRow&#58; function&#40;id&#41;&#123;
		if&#40;id && id!==lastsel&#41;&#123;
			jQuery&#40;'#rowed3'&#41;.jqGrid&#40;'restoreRow',lastsel&#41;;
			jQuery&#40;'#rowed3'&#41;.jqGrid&#40;'editRow',id,true&#41;;
			lastsel=id;
		&#125;
	&#125;,
	editurl&#58; "savedata.php",
	caption&#58; "Using events example"
&#125;&#41;;
jQuery&#40;"#rowed3"&#41;.jqGrid&#40;'navGrid',"#prowed3",&#123;edit&#58;false,add&#58;false,del&#58;false&#125;&#41;;
&#125;&#41;;
Το server.php είναι

Κώδικας: Επιλογή όλων

<?php 
$page = $_GET&#91;'page'&#93;; // get the requested page
$limit = $_GET&#91;'rows'&#93;; // get how many rows we want to have into the grid
$sidx = $_GET&#91;'sidx'&#93;; // get index row - i.e. user click to sort
$sord = $_GET&#91;'sord'&#93;; // get the direction
if&#40;!$sidx&#41; $sidx =1;
// connect to the database
$db = mysql_connect&#40;'χχχχ', 'χχχχχ', 'χχχχχ'&#41;
or die&#40;"Connection Error&#58; " . mysql_error&#40;&#41;&#41;;

mysql_select_db&#40;'northwind'&#41; or die&#40;"Error conecting to db."&#41;;
$result = mysql_query&#40;"SELECT COUNT&#40;*&#41; AS count FROM invheader a, clients b WHERE a.client_id=b.client_id"&#41;;
$row = mysql_fetch_array&#40;$result,MYSQL_ASSOC&#41;;
$count = $row&#91;'count'&#93;;

if&#40; $count >0 &#41; &#123;
	$total_pages = ceil&#40;$count/$limit&#41;;
&#125; else &#123;
	$total_pages = 0;
&#125;
if &#40;$page > $total_pages&#41; $page=$total_pages;
$start = $limit*$page - $limit; // do not put $limit*&#40;$page - 1&#41;
$SQL = "SELECT a.id, a.invdate, b.name, a.amount,a.tax,a.total,a.note FROM invheader a, clients b WHERE a.client_id=b.client_id ORDER BY $sidx $sord LIMIT $start , $limit";
$result = mysql_query&#40; $SQL &#41; or die&#40;"Couldn t execute query.".mysql_error&#40;&#41;&#41;;

$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while&#40;$row = mysql_fetch_array&#40;$result,MYSQL_ASSOC&#41;&#41; &#123;
    $responce->rows&#91;$i&#93;&#91;'id'&#93;=$row&#91;id&#93;;
    $responce->rows&#91;$i&#93;&#91;'cell'&#93;=array&#40;$row&#91;id&#93;,$row&#91;invdate&#93;,$row&#91;name&#93;,$row&#91;amount&#93;,$row&#91;tax&#93;,$row&#91;total&#93;,$row&#91;note&#93;&#41;;
    $i++;
&#125;        
echo json_encode&#40;$responce&#41;;
?>
(προφανώς έχω αλλάξει τους κωδικούς.

Ενώ το savedata.php είναι

Κώδικας: Επιλογή όλων

<?php

$a=$_POST&#91;'id'&#93;;
$b=$_POST&#91;'note'&#93;;

$db = mysql_connect&#40;'xxxxx', 'xxxxx', 'xxxxx'&#41;
or die&#40;"Connection Error&#58; " . mysql_error&#40;&#41;&#41;;

mysql_select_db&#40;'northwind'&#41; or die&#40;"Error conecting to db."&#41;;

$SQL = "UPDATE invheader SET note=$b WHERE id=$a";
$result = mysql_query&#40; $SQL &#41; or die&#40;"Couldn t execute query.".mysql_error&#40;&#41;&#41;;

?>
Οταν το ανοίγω τραβάει τα δεδομένα μιά χαρά. Οταν κάνω inline editing τα σώνει στον πίνακα στον browser αλλά όχι στη βάση.

Μήπως έχει κάποιος κάποια ιδέα τι μπορεί να φταίει?

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες