Javascript 使用JQuery删除数据库行

Javascript 使用JQuery删除数据库行,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我使用PHP函数将任何2D PHP数组格式化为HTML表,在该表中,我需要在每行中添加一个delete按钮,因此当用户单击delete按钮时,jQuery应获取特定字段(3个字段)并在PHP文件中提交,并应在不重新加载页面的情况下给出响应,我在同一个PHP文件中有几个动态表,因此我使用$table_name作为表单ID来区分表单,在del.PHP(我的表单提交的地方)中,我决定应该查找哪个表以使用主键删除行。我的问题是我是否必须在每个表中创建表单才能完成此任务?或者我可以简单地放置一些字段并使用

我使用PHP函数将任何2D PHP数组格式化为HTML表,在该表中,我需要在每行中添加一个delete按钮,因此当用户单击delete按钮时,jQuery应获取特定字段(3个字段)并在PHP文件中提交,并应在不重新加载页面的情况下给出响应,我在同一个PHP文件中有几个动态表,因此我使用$table_name作为表单ID来区分表单,在del.PHP(我的表单提交的地方)中,我决定应该查找哪个表以使用主键删除行。我的问题是我是否必须在每个表中创建表单才能完成此任务?或者我可以简单地放置一些字段并使用jQuery提交表单吗

任何帮助都是值得感激的

function formatArrayToTable($foo, $deletable = 0, $restaurant_id ='', $table_name = '') {
  //open table
  echo '<table class="imagetable">';

  // our control variable
  $first = true;

  foreach($foo as $key1 => $val1) {
    //if first time through, we need a header row
    if($first){
      echo '<tr>';
      foreach($val1 as $key2 => $value2) {
        echo '<th>'.$key2.'</th>';
      }

      if($deletable) {
        echo "<th>'Delete'</th>";
      }

      echo '</tr>';

      //set control to false
      $first = false;
    }

    echo '<tr>';

    foreach($val1 as $key2 => $value2) {
      echo '<td>'.$value2.'</td>';
    }

    if($deletable) {
      $primary = $val1["id"];

      echo "<input type='hidden' name='table_name' value='{$table_name}' />";
      echo "<input type='hidden' name='restaurant_id' value='{$restaurant_id}' />";
      echo "<td><input class='delete_class' type=\"button\" name=\"delete_id\" value={$primary} onclick='SubmitForm($table_name)'/></td>" ;
    }
    echo '</tr>';
  }
  echo '</table>';
}
函数formatArrayTable($foo,$deletable=0,$restaurant\u id='',$table\u name=''){
//开桌
回声';
//我们的控制变量
$first=true;
foreach($foo作为$key1=>$val1){
//如果第一次通过,我们需要一个标题行
如果($第一){
回声';
foreach($val1作为$key2=>$value2){
回显“.$key2.”;
}
如果($deletable){
回显“‘删除’”;
}
回声';
//将控件设置为false
$first=false;
}
回声';
foreach($val1作为$key2=>$value2){
回显“.$value2.”;
}
如果($deletable){
$primary=$val1[“id”];
回声“;
回声“;
回声“;
}
回声';
}
回声';
}
我的Javascript函数

function SubmitForm(formId){
  var message = "";
  $("#"+formId+" input").each(function() {
    message += $(this).attr("name");
  });

  $.ajax({
    type: "POST",
    url: "del.php",
    data: message,
    success: 
      function() {
        $('#message').html("<h2>Contact Form Submitted!</h2>")
          .append("<p>Entry is Deleted </p>")
          .hide()
      }
  });
}
函数提交表单(formId){
var message=“”;
$(“#”+formId+“input”)。每个(函数(){
message+=$(this.attr(“name”);
});
$.ajax({
类型:“POST”,
url:“del.php”,
数据:信息,
成功:
函数(){
$('#message').html(“已提交联系人表单!”)
.append(条目被删除

) .hide() } }); }

-关于

您的问题似乎是问您是否可以仅使用jQuery从数据库中删除项。按照惯例,据我所知,这是不可行的,因为数据库是服务器端的,jQuery是客户端的。话虽如此,我相信一些怪人已经为它建立了一个图书馆。尽管如此,要回答您的实际问题:

您需要知道如何使用jQuery模拟从DB表直接删除表行。下面是一个所需jQuery的粗略示例、当前php函数的示例输出,以及del.php中用于处理实际删除的内容

示例表

快速笔记。添加thead和tbody标记以帮助浏览器显示。删除
onclick=”“
位,因为您使用的是jQuery,所以只需添加带有JavaScript块的回调。确保代码将“.submittable”类(或其他描述性名称)添加到表中。您可以将整个表包装成一个表单,然后使用类似于插件的插件来处理每个表单的提交,但这似乎对于少数字段来说太过分了,因此我将解释如何使用原材料

<table class="imagetable submittable">
  <thead>
    <tr>
      <th>id</th>
      <th>name</th>
      <th>file</th>
      <th>meta</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <input type='hidden' name='table_name' value='secret_image_table' />
        <input type='hidden' name='restaurant_id' value='123' />
        <input class='delete_class' type='button' name='delete_id' value="Delete" />
      </td>
      <td>Silly Cat Image</td>
      <td>yarny-cat.jpg</td>
      <td>{"submitter":"De Zéro Toxin"}</td>
    </tr>
  </tbody>
</table>

希望这有帮助。

您的问题似乎是问您是否可以仅使用jQuery从数据库中删除项。按照惯例,据我所知,这是不可行的,因为数据库是服务器端的,jQuery是客户端的。话虽如此,我相信一些怪人已经为它建立了一个图书馆。尽管如此,要回答您的实际问题:

您需要知道如何使用jQuery模拟从DB表直接删除表行。下面是一个所需jQuery的粗略示例、当前php函数的示例输出,以及del.php中用于处理实际删除的内容

示例表

快速笔记。添加thead和tbody标记以帮助浏览器显示。删除
onclick=”“
位,因为您使用的是jQuery,所以只需添加带有JavaScript块的回调。确保代码将“.submittable”类(或其他描述性名称)添加到表中。您可以将整个表包装成一个表单,然后使用类似于插件的插件来处理每个表单的提交,但这似乎对于少数字段来说太过分了,因此我将解释如何使用原材料

<table class="imagetable submittable">
  <thead>
    <tr>
      <th>id</th>
      <th>name</th>
      <th>file</th>
      <th>meta</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <input type='hidden' name='table_name' value='secret_image_table' />
        <input type='hidden' name='restaurant_id' value='123' />
        <input class='delete_class' type='button' name='delete_id' value="Delete" />
      </td>
      <td>Silly Cat Image</td>
      <td>yarny-cat.jpg</td>
      <td>{"submitter":"De Zéro Toxin"}</td>
    </tr>
  </tbody>
</table>

希望这有帮助。

您的问题似乎是问您是否可以仅使用jQuery从数据库中删除项。按照惯例,据我所知,这是不可行的,因为数据库是服务器端的,jQuery是客户端的。话虽如此,我相信一些怪人已经为它建立了一个图书馆。尽管如此,要回答您的实际问题:

您需要知道如何使用jQuery模拟从DB表直接删除表行。下面是一个所需jQuery的粗略示例、当前php函数的示例输出,以及del.php中用于处理实际删除的内容

示例表

快速笔记。添加thead和tbody标记以帮助浏览器显示。删除
onclick=”“
位,因为您使用的是jQuery,所以只需添加带有JavaScript块的回调。确保代码将“.submittable”类(或其他描述性名称)添加到表中。您可以将整个表包装成一个表单,然后使用类似于插件的插件来处理每个表单的提交,但这似乎对于少数字段来说太过分了,因此我将解释如何使用原材料

<table class="imagetable submittable">
  <thead>
    <tr>
      <th>id</th>
      <th>name</th>
      <th>file</th>
      <th>meta</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <input type='hidden' name='table_name' value='secret_image_table' />
        <input type='hidden' name='restaurant_id' value='123' />
        <input class='delete_class' type='button' name='delete_id' value="Delete" />
      </td>
      <td>Silly Cat Image</td>
      <td>yarny-cat.jpg</td>
      <td>{"submitter":"De Zéro Toxin"}</td>
    </tr>
  </tbody>
</table>

希望这有帮助。

您的问题似乎是问您是否可以仅使用jQuery从数据库中删除项。按照惯例,据我所知,这是不可行的,因为数据库是服务器端的,jQuery是客户端的。话虽如此,我相信一些怪人已经为它建立了一个图书馆。尽管如此,要回答您的实际问题:

您需要知道如何使用jQuery模拟从DB表直接删除表行。下面是一个所需jQuery的粗略示例、当前php函数的示例输出,以及del.php中用于处理实际删除的内容

示例表