我有以下代码搜索从数据库显示返回结果到页面并用jqgrid显示它们,我的代码与firefox工作正常,但它不工作ie,当我使用utf8 像阿拉伯字母一样,我将ie和firefox的编码都设置为unicode(utf8)
其HTML代码
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>
我的javascript代码
function gridReload(){
var name = jQuery("#firstname").val();
jQuery("#list2").jqGrid('setGridParam',{url:"<?php bloginfo('template_url'); ?>/post2.php?firstname="+firstname",page:1}).trigger("reloadGrid");
}
和我的PHP代码
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);
为什么它不适用于ie(我用ie8测试)但是与opera和firefox一起工作
感谢
答案 0 :(得分:1)
首先,您在使用setGridParam
的行中引用时遇到问题。可能你的意思是
jQuery("#list2").jqGrid('setGridParam',
{url:"<?php bloginfo('template_url'); ?>/post2.php?firstname="+firstname,
page:1}).trigger("reloadGrid");
而不是
jQuery("#list2").jqGrid('setGridParam',
{url:"<?php bloginfo('template_url'); ?>/post2.php?firstname="+firstname",
page:1}).trigger("reloadGrid");
使用此代码构建url似乎并不好。你应该至少使用像
这样的东西jQuery("#list2").jqGrid('setGridParam',
{url:"<?php bloginfo('template_url'); ?>/post2.php?firstname="
+encodeURIComponent(firstname),
page:1}).trigger("reloadGrid");
或
jQuery("#list2").jqGrid('setGridParam',
{url:"<?php bloginfo('template_url'); ?>/post2.php?"+
jQuery.param({firstname: firstname}),
page:1}).trigger("reloadGrid");
然后,firstname
中的任何国际字符都会在网址中正确编码。
另一种方法是使用jqGrid的postData
参数。例如,请参阅How to filter the jqGrid data NOT using the built in search/filter box。