【问题标题】:Update Database After Button Click单击按钮后更新数据库
【发布时间】:2016-10-24 19:01:52
【问题描述】:

我有一个可以内联编辑或动态添加行的动态表。我希望能够点击运行 UPDATE 查询以更新数据库的保存按钮。但我不知道怎么做。我真的坚持这一点,并希望得到任何帮助。

这是一个代码笔:http://codepen.io/anon/pen/yawyQQ

您可以在 codepen 中找到大部分代码...我将提供一些我的 HTML/PHP 代码和 Ajaxsubmit 代码。

HTML/PHP 代码:

<html>

    <head>
        <title>Stage Rebate Master HTML Table</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
         <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
         <link rel="stylesheet" type="text/css" href="html_master.css">
         <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
        <script type="text/javascript" src="html_master.js"></script>
    </head>

    <label id="table_name">Stage_Rebate_Master</label><br>

<body>    

<div id="dialog-form" title="Add Vendor">
  <p class="validateTips">All form fields are required.</p>

  <form>
    <fieldset>
      <label for="mr_name">Vendor</label>
      <input type="text" name="mr_name" id="mr_name" class="text ui-widget-content ui-corner-all">
      <label for="buyer_id">Buyer ID</label>
      <input type="text" name="buyer_id" id="buyer_id" class="text ui-widget-content ui-corner-all">
      <label for="poc_n">POC Name</label>
      <input type="text" name="poc_n" id="poc_n" class="text ui-widget-content ui-corner-all">
      <label for="poc_p">POC Email</label>
      <input type="text" name="poc_e" id="poc_e" class="text ui-widget-content ui-corner-all">
      <label for="poc_p">POC Phone</label>
      <input type="text" name="poc_p" id="poc_p" class="text ui-widget-content ui-corner-all">

      <!-- Allow form submission with keyboard without duplicating the dialog button -->
      <input type="submit" id="submit" tabindex="-1" style="position:absolute; top:-1000px">
    </fieldset>
  </form>
</div>



<div id="users-contain" class="ui-widget">
<table id="html_master" class="ui-widget ui-widget-content">
<thead>
    <tr class="ui-widget-header">
    <td>ID</td>
    <td>Vendor</td>
    <td>Buyer ID</td>
    <td>POC Name</td>
    <td>POC Email</td>
    <td>POC Phone</td>
    <td>Edit/Delete</td>
    </tr>
</thead>
<tbody>

<?php
    foreach ($dbh->query($sql) as $rows){
    ?>
    <tr>
        <td class="mr_id" contenteditable="false"><?php echo intval ($rows['MR_ID'])?></td>
        <td class="mr_name" contenteditable="false"><?php echo $rows['MR_Name']?></td>
        <td class="buyer_id" contenteditable="false"><?php echo $rows['Buyer_ID']?></td>
        <td class="poc_n" contenteditable="false"><?php echo $rows['MR_POC_N']?></td>     
        <td class="poc_e" contenteditable="false"><?php echo $rows['MR_POC_E']?></td>
        <td class="poc_p" contenteditable="false"><?php echo $rows['MR_POC_P']?></td>
        <td><input type="button" class="edit" name="edit" value="Edit">
        <input type="button" class="deactivate" name="deactivate" value="Deactivate"></td>
    </tr>
 <?php
  }
 ?>
</tbody>

    <input type="button" class="create-user" value="Add Row">
    <input type="submit" value="Save Table" class="save">

</table>
</div>

    <input type="button" class="create-user" value="Add Row">
    <input type="submit" value="Save Table" class="save">

</body>


</html>

Ajax提交代码:

<?php

$host="xxxx"; 
$dbName="xxxxxxx"; 
$dbUser="xxxxx"; 
$dbPass="xxxxxxxxxxxx";

$dbh = new PDO( "sqlsrv:server=".$host."; Database=".$dbName, $dbUser, $dbPass);
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );


$data = $_POST['data'];
foreach($data as $row){
    $sql = "UPDATE Stage_Rebate_Master SET MR_Name='$row[mr_name]',
    Buyer_ID='$row[buyer_id]',
    MR_POC_N='$row[poc_n]',
    MR_POC_E='$row[poc_e]',
    MR_POC_N='$row[poc_p]'
    WHERE MR_ID='$row[mr_id]'";

    $dbh->query($sql);
}

?>

【问题讨论】:

  • 您是否记录了有关 ajax 的信息?
  • 我已经读了一点,但从来没有使用过足够知道如何使用它......只是需要一些快速的东西
  • 检查我的答案,如果有什么不清楚的请问我

标签: javascript php jquery database


【解决方案1】:

您可以使用 jquery 或 javascript 来发布和更新数据

jquery 代码:

$.post("save2db.php",{
  id:"id",
  vendor:"vendor_name"
});

id : $_POST['id']

供应商:$_POST['vendor']

save2db.php 将是:

    if(isset($_POST['vendor'])){
       $vendor=$_POST['vendor'];
       $id=$_POST['id'];
     //your update sql query
    }

【讨论】:

【解决方案2】:

如果您只是希望在单击“更新”按钮时发生这种情况,您可以尝试使用

if(isset($_POST["Update"]))
{
 //PDO statement to update the database
}

只有在表单中按下名称为“更新”的按钮时才会执行此操作。

【讨论】:

  • 那么这会进入 ajax 提交页面吗??
  • 它将出现在“更新”按钮所在的主页上。这将是服务器端,因此需要重新加载页面。这有点像一个验证脚本,说您提交了带有值更新的表单,因此执行以下操作。
猜你喜欢
  • 2014-01-17
  • 2016-06-11
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多