2012-07-17 75 views
0

我试图在我的php页面上进行mysql数据的内联编辑。 我正在使用一个示例脚本发现:here使用InstantEdit 2.0对mysql数据进行内联编辑JS

我所有的代码显示在这个问题下面。

在浏览到ajaxtest.php时,表格数据显示正确。当点击表格数据时,我可以编辑它。但点击保存数据更改为'假'

任何想法,为什么这是hapening?它是否与update.php上的标题有关?

这里是我的MySQL表代码:

我创建了一个表作为每下面:

CREATE TABLE IF NOT EXISTS `tblInLineEdit` (
    `id` int(6) NOT NULL AUTO_INCREMENT, 
    `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL, 
    `descr` varchar(50) COLLATE utf8_unicode_ci NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ; 

-- 
-- Dumping data for table `tblInLineEdit` 
-- 

INSERT INTO `tblInLineEdit` (`id`, `name`, `descr`) VALUES 
(1, 'carl', 'developer'), 
(2, 'angela', 'administration'); 

我已经然后创建了两个页面,ajaxtest.php和update.php。代码如下:

ajaxtest.php

<? 
$db_user = "username"; 
$db_pass = "password"; // password here 
$db = "database"; 
$host = "localhost"; 
$link = mysql_connect($host,$db_user,$db_pass) or die("Database connection broken"); 
mysql_select_db($db,$link) or die("Database connection unavailable – ".mysql_error()); 
$result = mysql_query("SELECT * FROM tblInLineEdit"); 
//$row = mysql_fetch_assoc($result); 
?> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="instantedit.js"></script> 
<table> 
<? while ($row = mysql_fetch_assoc($result)) { ?> 
<tr> 
<td><span id="name-|||-<?php echo $row['id']; ?>" class="editText"><? echo $row['name']; ?></span></td> 
<td><span id="descr-|||-<?php echo $row['id']; ?>" class="editText"><? echo $row['descr']; ?></span></td> 
</tr> 
<?php } ?> 
</table> 

update.php

<? 
header("Expires: Mon, 26 Jul 2014 05:00:00 GMT"); // Date in the past 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified 
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); // HTTP/1.1 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); // HTTP/1.0 

$db_user = "user"; 
$db_pass = "password"; // password here 
$db = "database"; 
$host = "localhost"; 
$link = mysql_connect($host,$db_user,$db_pass) or die("Database connection broken"); 
mysql_select_db($db,$link) or die("Database connection unavailable – ".mysql_error()); 
$content = $_GET['content']; 
list($fieldname, $id) = explode("-|||-",$_GET['fieldname']); 
mysql_query("UPDATE tblInLineEdit SET $fieldname = ‘$content’ WHERE id = $id ") or die("blah failure – ".mysql_error()); 
$result = mysql_query("SELECT * FROM tblInLineEdit WHERE id = $id"); 
$row = mysql_fetch_assoc($result); 
echo $row["{$fieldname}"]; 
?> 

任何想法,为什么它返回false?

感谢您提前协助。

或者任何人都可以推荐一个轻松实现mysql的轻量级内联编辑器吗?

一如既往的感谢。

回答

2

尝试调试您的客户端脚本。使用Firebug或Chrome的开发人员工具查看生成的错误。您的链接在我的浏览器中加载页面时产生以下错误:

看起来该页面不存在。

我不知道你在做什么。但如果这是实际项目的早期阶段,我建议考虑多一点研究。也许一些关于面向服务架构的研究可以帮助你很多。您可以使用的最佳实践之一就是使用Zend Framework的JSON服务器。我自己一直在研究一个框架,如果你的项目规模越来越大,这个框架可能对你有用。它叫Pomegranate,也许你想看看它。

+0

嗨梅赫兰,非常感谢您的反馈,感谢您的时间。我试图得到的示例工作,按链接 http://jointtech.com/tech-stuff/ajax-inline-editor-with-php-and-mysql/ 我检查和update.php确实工作。我纠正了jquery.js问题,但结果相同。任何关于如何让它工作的建议? – Smudger 2012-07-17 08:42:09

+0

嗨@Mehran,我跟着你的石榴链接和谷歌搜索一看,但网站上的例子不工作,我似乎无法下载框架。这仍然是支持和使用?也许你有另一个我没有遇到过的链接?谢谢, – Smudger 2012-07-17 10:38:59

+0

对不起,我没有时间按照你给的链接看看到底是什么问题。但由于404 Not Found问题,我仍然无法在浏览器中打开更新页面。这意味着该页面无法访问。您可以通过在浏览器的新选项卡中打开它来简单地进行测试。 – Mehran 2012-07-17 11:09:36