【问题标题】:Change some user settings, but not all from a single form (PHP, MySQL)更改一些用户设置,但不是全部来自单个表单(PHP、MySQL)
【发布时间】:2011-08-01 14:44:23
【问题描述】:

我正在用 PHP 创建一个站点,同时将我的日期存储在 MySQL 数据库中。我已经创建了我的注册、登录、注销部分,但我想让事情变得更加用户友好,并添加一个人们可以更改其用户设置的区域。我希望用户能够修改的一些设置如下:

  • 全名
  • 电子邮件
  • 年龄
  • 性别

话虽如此,我希望他们能够只填写他们想要更新的表格部分。他们应该能够保持其他所有内容不变,并通过一个提交按钮提交所有更改。

非常感谢任何有关解决此问题的最佳方法的建议。

另一方面,我最终希望这个网站包含 AJAX(用户可以在其中选择个人设置并随意更改它们),所以如果您的解决方案考虑到这一点,那就太好了。

编辑:

抱歉,我应该提一下,除非他们在此处明确输入,否则我不想将信息显示给用户(即显示在文本字段中)。据我所知,这将使我不必每次都发布所有数据。

【问题讨论】:

  • 加载表单时填写信息,每次都更新?

标签: php mysql html ajax forms


【解决方案1】:

创建edit.php 或其他内容。创建要编辑的文本字段。 可以显示与用户的唯一 ID 相关的所有信息。

input type='text' value='"Example: Select * from users WHERE id = '$userid'"' name'Example: Update_name'

对您要编辑的所有字段执行此操作。创建此edit.php 后。使用脚本更新$_POST$_GET 用户详细信息。基于这个易于使用的脚本,您可以为用户提供编辑功能。

【讨论】:

    【解决方案2】:

    我有一个很好的方法来实现这一点。只需在php 中进行一些if/else 编码即可。像这样——

    HTML代码:

    <form action="settings.php" method="POST">
           <input type="text" name="full name" />
           <input type="text" name="email" />
           ........ (and more)
    </form>
    

    还有PHP代码---

    <?php
      if($_POST)
      {
       if(isset($_POST['full name'])) { //Update full name of user and redirect to the settings page on success. }
       else { //Redirect and show errors! }
       if(isset($_POST['email'])) { //Update email of user and redirect to the settings page on success. } 
       else { //Redirect and show errors! }      
      }
    ?>
    

    或者您可以使用PHParray function 在其中设置MySql 查询,如---

    <?php
      mysql_query("
        UPDATE table name SET 
        //Loading different values from the array using foreach() php function.
      ");
    ?>
    

    试着在里面做一些修改。

    希望对你有所帮助。

    【讨论】:

    • 感谢好友的评论!
    • 我可能弄错了,但我认为如果用户最终将文本输入留空,那么它仍然设置但为空。如果是这种情况,你会想使用if(isset($_POST['foo']) &amp;&amp; !empty($_POST['foo'])){/*do stuff*/}
    • 是的,我知道,但我只是为他提供了一些基本的东西来实现他的目标。无论如何,谢谢你的建议,保罗!
    【解决方案3】:

    您的选择是:

    1) 多阶段编辑过程。 1.选择要更改的字段。 2. 呈现字段进行编辑。 3.保存更新数据。比较繁琐

    2) 显示表单中的所有字段,但使用一些 Javascript 来跟踪更改了哪些字段并仅提交那些

    3)。呈现表单中的所有字段,并更新数据库中的所有字段。如果一个或多个未更改,则更新无论如何都是空操作。

    3) 最容易实现。 2)依赖于javascript。 1) 对你来说很乏味,对用户来说更乏味。

    只要您对所有字段进行适当的验证,我看不出#3 是最合乎逻辑的选择。

    【讨论】:

    • 我完全同意 3) 是迄今为止最好的选择,但我忘了提到我不想在字段中显示用户数据,除非用户明确输入数据。这有意义吗?
    • @ServAce85 您可能应该编辑问题以反映这一点。不过,我确实有一个问题要问您 - 如果用户想要从字段中删除数据,您会怎么做?
    • @aehiilrs 当你提出这个建议时,我已经在编辑它了 :) 至于我打算做什么,如果人们想要删除数据 - 这是一个很好的问题。对于 ajax,我希望在值旁边有一个“删除”按钮,但就当前设置而言,我愿意接受建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多