原创文章,版权归 胡添发([email protected])所有,转载请注明出处:
http://blog.csdn.net/aidisheng/archive/2008/09/02/2868700.aspx
Extjs自带了非常多示例,这对于学习Extjs来说是件好事,只是例子使用php来做后台的。我想把这些例子慢慢变成Rails版的,为了避免麻烦,我直接在InstantRails环境中(自带的Apache)运行这些例子,在改编为Rails之前还是先搞定php版的再说。第一次接触PHP,遇上问题是很常见的,以下是解决各种问题到最终成功展示的全过程:
一、把extjs包解压缩到InstantRails-2.1-win/www下,进入ext/examples/grid-filtering目录,有个grid-demo.txt文件,里面放的是创建该示例的sql语句,在mysql中执行这些sql语句。然后访问:
http://localhost/ext/examples/grid-filtering/grid-filter.html,结果程序报错:没有定义json_encode函数。原因:InstantRails包含的是php4,而php4还没有json_encode这个方法,php5中才提供该方法,所以,首先需要先升级php。
二、把InstantRails中的php4升级到php5
1、 下载php5
到http://cn.php.net/downloads.php 选择zip文件格式下载
2、 把InstantRails的根目录原来的php文件夹改名为php4,把php-5.2.6-Win32.zip解压到文件夹php中
3、 修改apache的配置文件http.conf
把所有配置为php4的名字改为php5
4、 修改conf_files下的php.ini
由于php5把extensions目录名改为了ext,所以需要把extension_dir = "${path}/php/extensions/"改为extension_dir = "${path}/php/ext/"
在文件的末尾;/PHPExt之前添加一行
extension=php_mysql.dll
;/PHPExt
注意:必须要在;/PHPExt这行前添加,否则会出问题,提示找不到mysql_pconnect函数。
三、重新启动InstantRails,然后访问:
http://localhost/ext/examples/grid-filtering/grid-filter.html,结果程序报错:
Undefined index: ..//grid-filtering//grid-filter.php on line 9
四、修改程序
1、解决第一个错误:
Undefined index: ..//grid-filtering//grid-filter.php on line 9
第9行的代码:$filter = $_REQUEST["filter"];默认情况下,没有传递filter参数过去,所以该语句要报错。把下面的语句:
$filter = $_REQUEST["filter"];
改为:
$filter = '';
if(isset($_REQUEST["filter"])){
$filter = $_REQUEST["filter"];
}
2、设置了filter之后,程序接着报第二个错误
Undefined variable: qs in ..//grid-filtering//grid-filter.php on line 33
qs变量没有定义,解决方法:
在$where = " 0 = 0 ";语句之后添加下面的语句:
$qs = ''
再次访问http://localhost/ext/examples/grid-filtering/grid-filter.html,内容出来了。搞定。