好的,所以我在不调用页面刷新的情况下动态更新数据库是相当新的。我正在尝试以更简单的规模创建类似http://mytinytodo.net/的东西
我试图在这里达到的最终目标是让程序:
- 能够动态生成字段(完成)
- 在通过 PHP 加载时使用 MYSQL 数据库中的现有条目填充网页(完成)
- 允许用户“全选”或“取消全选”(完成)
- 记住用户的个人列表。也许是 Cookie?帮助!
- 使用用户对现有列表项所做的任何更改或提交新创建的列表项来更新数据库。阿贾克斯?jQuery?帮助!
到目前为止,我已经花了几个小时来完成这个小项目,这就是我所拥有的:
索引.php:
<!doctype html>
<html>
<head>
<metacharset="utf-8" />
<title>Simple To-Do List</title>
<?php
// Create connection via my connect.php file
require 'connect.php';
// Create query
$query = "select * from checklist";
$result = mysql_query($query);
// Create requisite array for checklist
$checklistItems = array();
//Check to ensure query won't implode and is valid
if ($result === FALSE) {
die(mysql_error());
}
// Calculates number of rows from query
$num = mysql_numrows($result);
mysql_close($con);
?>
<!-- javascript code to dynamically add new form fields as well as check\uncheck all boxes -->
<script src="addInput.js" language="Javascript" type="text/javascript"></script>
</head>
<body>
<h1>My To-Dos</h1>
<form name="checklist" id="checklist" action="" method="">
<?php
// Loop through query results
while ($row = mysql_fetch_array($result)) {
$entry = $row['Entry'];
$CID = $row['CID'];
$checked = $row['Checked'];
// echo $CID;
echo "<input type=\"text\" value=\"$entry\" name=\"textfield$CID;\" id=\"textfield$CID;\" />";
echo "<input type=\"checkbox\" value=\"\" name=\"checkbox$CID;\" id=\"checkbox$CID;\" value=\"$checked\"" . (($checked == '1') ? ' checked="checked"' : '') . " />";
echo "<br>";
}
?>
<div id="dynamicInput"></div>
<input type="submit" id="checklistSubmit" name="checklistSubmit"> <input type="button" id="CompleteAll" name="CompleteAll" value="Check All" onclick="javascript:checkAll('checklist', true);"><input type="button" id="UncheckAll" name="UncheckAll" value="Uncheck All" onclick="javascript:checkAll('checklist', false);">
<input type="button" value="Add another text input" onClick="addInput('dynamicInput');"></form>
</body>
</html>
连接.php
<?php
// Create connection
$con=mysql_connect("localhost","root","");
$selected = mysql_select_db("madmonk",$con);
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysql_connect_error();
}
?>
总之,当一个表单字段发生“onchange”时,我如何谨慎地更新用户列表,而不必将整个页面扔到一个帖子文件中,然后将 URL 重定向回来?我不希望发生刷新。
如何创建一个 cookie 来记住用户是谁以及他的个人项目列表是什么?
这是我第一次真正尝试这样的事情。显然我还没有接近“造型”阶段,所以没有 CSS 或任何华而不实的东西。
编辑: 所以我现在有(基本上)唯一的会话变量,我用它来区分访问者,当他们在数据库中创建新的“清单”时,他们的“uid”将记录在那里。因此,只要会话持续,系统就会“记住”它们……我想这就是你们中的一些人在暗示我所做的。