Reputation: 1409
i have the following code for search from database show return result to the page and show them with jqgrid, my code works fine with firefox but its not work on ie, when i use of utf8 like arabic letters, i set both of encoding of ie, and firefox to unicode(utf8)
its html code
first name: <input type="text" id="firstname" onkeydown="doSearch(arguments[0]||event)" value="" class="mytextbox" />
<button onclick="gridReload()" id="submitButton" style="margin-right:100px;" class="Buttons">search</button>
my javascript code
function gridReload(){
var name = jQuery("#firstname").val();
jQuery("#list2").jqGrid('setGridParam',{url:"<?php bloginfo('template_url'); ?>/post2.php?firstname="+firstname",page:1}).trigger("reloadGrid");
}
and my php code
if(isset($_GET["firstname"]))
$firstname = $_GET['firstname'];
mysql_query ( "set names utf8" );
if($firstname!='')
$where= " firstname LIKE '$firstname%'";
$SQL = "SELECT id,firstname,lastname FROM mytable ".$where."
ORDER BY $sidx $sord LIMIT $start , $limit";
$result = mysql_query( $SQL ) or die(mysql_error());
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
$responce->rows[$i]['id']=$row[id];
$responce->rows[$i]['cell']=array(
$row[id],$row[firstname],$row[lastname]);
$i++;
}
echo json_encode($responce);
why its not work with ie(i teste with ie8) but works with opera and firefox
thanks
Upvotes: 0
Views: 1128
Reputation: 221997
First of all you have problem with quotes in the line where you use setGridParam
. Probably you mean
jQuery("#list2").jqGrid('setGridParam',
{url:"<?php bloginfo('template_url'); ?>/post2.php?firstname="+firstname,
page:1}).trigger("reloadGrid");
instead of
jQuery("#list2").jqGrid('setGridParam',
{url:"<?php bloginfo('template_url'); ?>/post2.php?firstname="+firstname",
page:1}).trigger("reloadGrid");
It seems to me not good to build url with this code. You should at least use something like
jQuery("#list2").jqGrid('setGridParam',
{url:"<?php bloginfo('template_url'); ?>/post2.php?firstname="
+encodeURIComponent(firstname),
page:1}).trigger("reloadGrid");
or
jQuery("#list2").jqGrid('setGridParam',
{url:"<?php bloginfo('template_url'); ?>/post2.php?"+
jQuery.param({firstname: firstname}),
page:1}).trigger("reloadGrid");
Then any international characters from the firstname
will be encoded correctly in the url.
One more way is the usage of postData
parameter of the jqGrid. See How to filter the jqGrid data NOT using the built in search/filter box for example.
Upvotes: 1