如何使用PHP和HTML更新jQuery中的行
我的PHP脚本生成一个带有行的表,可以选择编辑或删除这些行。还可以创建一个新行 我很难弄清楚如何更新通过PHP生成并通过jQuery插入的HTML行。更新后,它必须仍然是可编辑的。HTML被生成为一个div如何使用PHP和HTML更新jQuery中的行,php,jquery,mysql,html,row,Php,Jquery,Mysql,Html,Row,我的PHP脚本生成一个带有行的表,可以选择编辑或删除这些行。还可以创建一个新行 我很难弄清楚如何更新通过PHP生成并通过jQuery插入的HTML行。更新后,它必须仍然是可编辑的。HTML被生成为一个div jQuery(插入生成的HTML/等待操作) PHP(生成html) 返回步骤1) (编辑:更正错误并将脚本更改为答案) PHP require_once "../../includes/constants.php"; // Connect to the database as neces
require_once "../../includes/constants.php";
// Connect to the database as necessary
$dbh = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die("Unaable to connnect to MySQL");
$selected = mysql_select_db(DB_NAME, $dbh) or die("Could not select printerweb");
$action = $_POST['action'];
$name = $_POST['name'];
$id = $_POST['id'];
if ($action == "new") {
mysql_query("INSERT INTO place (id, name) VALUES (NULL, $name)");
}
elseif ($action == "edit") {
mysql_query("UPDATE place SET name = $name WHERE id = $id");
}
elseif ($action == "delete") {
mysql_query("DELETE FROM place WHERE id = $id");
}
echo "<table><tbody>";
$result = mysql_query("SELECT * FROM place");
while ($row = mysql_fetch_array($result)) {
echo "<tr><td id=" . $row["id"] . " class=inputfield_td><input class=inputfield_place type=text value=" . $row["name"] . " /></td><td class=place_name>" . $row["name"] . "</td><td class=edit>edit</td><td class=cancel>cancel</td><td class=delete>delete</td><td class=save>SAVE</td></tr> \n";
}
echo "</tbody>";
echo "</table>";
echo "<input type=text class=inputfield_visible />";
echo "<button class=new>Neu</button>";
将所有事件处理程序放在ajax函数之外,改用
live()
方法。在使用ajax时,需要包括要发送的数据。发件人:
将所有事件处理程序放在ajax函数之外,改用
live()
方法。在使用ajax时,需要包括要发送的数据。发件人:
我认为在将php中的新行附加到div之后,您不会得到用于编辑、删除等的单击事件
尝试使用jquery live插件在创建新内容时绑定单击事件。请参阅处理类似问题的问题。我认为在将php中的新行添加到div后,您不会获得用于编辑、删除等的单击事件 尝试使用jquery live插件在创建新内容时绑定单击事件。请参考处理类似问题的问题。喜欢并指出,live插件可能有用。但是,您的代码中可能还存在一些其他错误: 首先,您的HTML无效。必须在属性值周围加引号。通过使用反斜杠转义内部引号,可以在引号内执行此操作:
echo "<input type=\"text\" class=\"inputfield_visible\" />";
echo”“;
由于这看起来不太好,如果您更改以下内容,您可以离开PHP部分,编写纯HTML:
<?php
...
echo "</tbody>";
echo "</table>";
echo "<input type=text class=inputfield_visible />";
echo "<button class=new>Neu</button>";
?>
对此(IMHO更具可读性):
纽
其次,这似乎更为重要,在我看来,您似乎有一个SQLInjection漏洞,因为您直接将字段值传递给mysql,而不首先使用。我不太喜欢PHP,所以可能我弄错了,但如果输入,会发生什么--将>编码到您的输入字段中?喜欢并指出,live插件可能很有用。但是,您的代码中可能还存在一些其他错误:
首先,您的HTML无效。必须在属性值周围加引号。通过使用反斜杠转义内部引号,可以在引号内执行此操作:
echo "<input type=\"text\" class=\"inputfield_visible\" />";
echo”“;
由于这看起来不太好,如果您更改以下内容,您可以离开PHP部分,编写纯HTML:
<?php
...
echo "</tbody>";
echo "</table>";
echo "<input type=text class=inputfield_visible />";
echo "<button class=new>Neu</button>";
?>
对此(IMHO更具可读性):
纽
其次,这似乎更为重要,在我看来,您似乎有一个SQLInjection漏洞,因为您直接将字段值传递给mysql,而不首先使用。我不太喜欢PHP,所以可能我弄错了,但如果输入,会发生什么--
输入字段?当我想创建新行时,JS会对点击事件做出反应,但PHP不会进入数据库。你知道我做错了什么吗?问题解决了!复制了一个MySQL查询,它确实起了作用,现在PHP脚本成功地在数据库中创建了一个条目,JS对单击事件做出了反应,但当我想要创建新行时,PHP没有在数据库中创建条目。你知道我做错了什么吗?问题解决了!复制了一个MySQL查询,该查询确实有效,现在PHP脚本成功地进入数据库。感谢您帮助我使HTML有效!关于SQLinjection漏洞(你把我带到了那里;D),我正在尝试首先建立我的网站,然后我将尝试更正这些错误:)鉴于php文件只是用于AJAX调用,我认为HTML需要“回显”,因为这是传递回调用方的信息?Tim,你的第二个示例不是有效的HTML,因为属性周围缺少引号。应为:echo“”;,或者,回声'@黛利拉:是的,没错。我只是引用了问题中的那一块,但作者同时改变了它。实际上,第三个例子是我推荐的从PHP打印HTML的方法。谢谢你帮助我使我的HTML有效!关于SQLinjection漏洞(你把我带到了那里;D),我正在尝试首先建立我的网站,然后我将尝试更正这些错误:)鉴于php文件只是用于AJAX调用,我认为HTML需要“回显”,因为这是传递回调用方的信息?Tim,你的第二个示例不是有效的HTML,因为属性周围缺少引号。应为:echo“”;,或者,回声'@黛利拉:是的,没错。我只是引用了问题中的那一块,但作者同时改变了它。实际上,第三个例子是我推荐的从PHP打印HTML的方法。介意我问一下PHP的bug是什么吗?只是想知道,因为我不是很擅长PHP。。(:介意我问一下PHP的bug是什么吗?我只是想知道,因为我不是很擅长PHP….:
<?php
...
?>
</tbody>
</table>
<input type="text" class="inputfield_visible" />
<button class="new">Neu</button>