gpt4 book ai didi

PHP\MYSQL\AJAX(?) - 挣扎于如何在不调用页面刷新的情况下动态更新表单

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:42 26 4
gpt4 key购买 nike

好的,所以我对在不调用页面刷新的情况下动态更新数据库还很陌生。我正在尝试以更简单的规模创建类似 http://mytinytodo.net/ 的东西

我在这里试图达到的最终目标是让程序:

  1. 能够动态生成字段(完成)
  2. 在通过 PHP 加载时使用 MYSQL 数据库中的现有条目填充网页(完成)
  3. 允许用户“选中所有”或“取消选中所有”(完成)
  4. 记住用户的个人列表……也许是 Cookie? 求助!
  5. 使用用户对现有列表项所做的任何更改更新数据库或提交新创建的列表项。 Ajax ?查询? 求助!

到目前为止,我已经在这个小项目上花了几个小时,这是我所拥有的:

index.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>

connect.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 或任何华而不实的东西。

编辑: 所以我现在有(本质上)唯一的 session 变量,我用它来区分访问者,当他们在数据库中创建新的“ list ”时,他们的“uid”将被记录在那里。因此,只要 session 持续,系统就会“记住”它们……我认为这就是你们中的一些人暗示我所做的。

最佳答案

您可能喜欢学习 jQuery - 就基本的 JS 框架(和 ajax 之类的东西)而言,它会让您的生活更轻松。

其次,您始终可以使用 session 。只需将 session_start() 放在你的 php 文件的顶部(所有被使用的文件).. 然后你就可以访问 $_SESSION['name'] 并分配你想要的任何东西

PHP 是无状态的——不推荐使用 cookie,如果可以避免,我不赞成使用它。 session 是服务器端的(但通常在客户端放置一个 session ID cookie.. 但没有别的)并且通常是可信的。

至于“记住用户的个人列表……也许是 Cookie?” - 我以为你为此使用了数据库?

关于PHP\MYSQL\AJAX(?) - 挣扎于如何在不调用页面刷新的情况下动态更新表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16867207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com