php - 可编辑,PHP + MySQL

标签 php jquery mysql jeditable

好吧,我对 MySQL 和 PHP 非常陌生,但这里需要一些帮助。

宏伟愿景:一个充满可编辑字段的大页面(我正在使用 Jeditable,一个就地编辑的 jquery 插件),将值存储到 MySQL 数据库同一行中的不同字段。

不过,我完全不知道如何正确地将值发布到 MySQL 数据库的不同字段。我所拥有的如下;它源自 Jeditable 提供的示例。我可以在字段中输入数据,但它会保存字段的 ID(而不是数据),并将其附加到数据库的多个列中,而不是一个正确的列中。

那么,简而言之 - 我如何将您在此处看到的内容映射到我的 MySQL 数据库中的不同位置(例如:带有客户名称值、尺寸值、初始销售值的 MRR 等的一个行项目/记录? )

这是我的 HTML-

<!-- JQuery to extract form data... -->
  <script type="text/javascript" charset="utf-8">
    $(document).ready(function() {
      $('#paragraph_1').editable('save.php');
    });

    $(document).ready(function() {
      $('#custsize').editable('save.php');
    });

    $(document).ready(function() {
      $('#mrratsale').editable('save.php');
    });
  </script>

<!-- my form fields... -->
<h2 id="paragraph_1" name="paragraph_1"></h2>
<h3 id="custsize" name="custsize"></h3>
<h3 id="mrratsale" name="mrratsale"></h3>

...这是我的 save.php 文件...

   <?php
      require_once 'config.php';
      $query=sprintf("INSERT INTO customerdata (ListItemID, CustName, CustSize, MrrAtSale)
        VALUES (%d, '%s', '%s', '%s')",
         $id, $_POST['id'], $_POST['id'], $_POST['id'], stripslashes($_POST['value']));

      $dbh->exec($query);
       /* What is echoed back will be shown in webpage after editing.*/
         print $_POST['value']; 
     ?>

任何帮助都将非常非常感谢(并且尽量不要笑!)

最佳答案

您要做的是将每个可编辑数据库写入目标到其自己的函数 - 这样您就可以定位各个字段。

所以你的 html 文件应该读取(我还清理了你的 JS):

<!-- JQuery to extract form data... -->
<script type="text/javascript" charset="utf-8">
  $(document).ready(function() {
    $('.paragraph_1').editable('save.php?type=paragraph');
    $('.custsize').editable('save.php?type=custsize');
    $('.mrratsale').editable('save.php?type=mrratsale');
  });
</script>

<!-- my form fields... -->
<h2 id="1" class="paragraph_1"></h2>
<h3 id="1" class="custsize"></h3>
<h3 id="1" class="mrratsale"></h3>

请注意我如何将查询字符串添加到 save.php 文件中。您还应该将元素的 id 更改为记录中的字段,以便可以更新正确的记录。

php 文件:

<?php
  require_once 'config.php';

  $type = (isset($_GET['type'])) ? $_GET['type'] : "";
  $value = (isset($_POST['value'])) ? $_POST['value'] : ""; //value posted
  $id = (isset($_POST['id'])) ? $_POST['id'] : ""; //id of the element

  if($type == "paragraph") {
    mysql_query("UPDATE customerdata SET paragraph='$value' WHERE id='$id'");
  } elseif ($type == "custsize") {
    mysql_query("UPDATE customerdata SET CustSize='$value' WHERE id='$id'");
  } elseif ($type == "mrratsale") {
    mysql_query("UPDATE customerdata SET MrRatSale='$value' WHERE id='$id'");
  };

   print $value; 
?>

您应该在将数据放入数据库之前添加一些验证并清理数据,但这应该可以使 jEditable 正常工作。

请注意,您可能应该更新记录而不是插入记录,否则每次编辑数据时都会创建一个新记录。

您可以看到该 ID 用于更新正确的记录。

我最近还没有真正使用过 jEditable,但这应该可以帮助您入门。

关于php - 可编辑,PHP + MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10117294/

相关文章:

php - 如何使 PHPUnit 在有风险的测试中失败

php - Magento 以编程方式登录客户

javascript - 如何使类内部 ul li css

php - 从 Android 连接到 PHP 和 MySQL

javascript - 使用 JCombo 制作链式组合框

mysql - 更新一列后将该行移动到 sql 中的另一个表

php - 处理两个人同时在网上商店购买一件独特商品的问题

javascript - 更新用户: save already filled in details

jquery - 使用 Jquery 一个接一个地动画 Div

jQuery 通过向下滑动来添加一个 DIV