检查时将数据保存在数据库中并在取消选中时删除

时间:2013-03-15 00:30:03

标签: php javascript jquery mysql checkbox

我正在尝试做的是分别在复选框检查/取消选中时在(mysql)数据库中保存/删除数据。我有动态生成的复选框,我想保存数据库中特定复选框的数据。同时如果取消选中特定的复选框数据将从数据库中删除。 任何人都可以告诉我这是可能使用jquery或任何其他脚本语言在PHP中。 提前谢谢。

我正在尝试添加一些代码 这是我的“table_edit_ajax.php”代码

<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "test";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) 
or die("Opps some thing went wrong");
mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");


if($_POST[first_input_.$i])
{
$firstname=mysql_escape_String($_POST[first_input_.$i]);
$sql = "INSERT INTO fullnames(firstname)VALUES('$firstname')";
mysql_query($sql);
}
?>

这是我的主文件,我在其中生成名为“test.php”的复选框

<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "test";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) 
or die("Opps some thing went wrong");
mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript">
$('.edit_tr').on('change', function(){
    // saving or deleting?
    var savedelete;
    if ($(this).is(':checked')) savedelete='save';
    alert ("save test");
    else savedelete='delete';
    alert ("delete test");
    // what am I changing?
    var name=$(this).attr('first_input_<?php echo $i; ?>');

    // call the server
    $.ajax({
      type: "POST",
      url: 'table_edit_ajax.php'
      data: {"do": "saveordelete", "whichone": savedelete,  "name": name   },
      success: function(data){
        if (data=='true'){ // is string not boolean
            // it worked
            alert ("true");
        }else{
            // didn't work
            alert ("false");
        }
      }
    });

});
</script>
<style>
body
{
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
}

td
{
padding:7px;
}
.editbox
{
font-size:14px;
width:270px;
/*background-color:#ffffcc;*/

border:solid 1px #000;
padding:4px;
}

th
{
font-weight:bold;
text-align:left;
padding:4px;
}
.head
{
background-color:#333;
color:#FFFFFF

}

</style>
</head>

<body bgcolor="#dedede">
<div style="margin:0 auto; width:750px; padding:10px; background-color:#fff; height:800px;">


<table width="100%">
<tr class="head">
<th>First Name</th>
</tr>
<?php
$i=1;
while($i<=5)
{
if($i%2)
{
?>
<tr id="lovetr<?php echo $i; ?>" class="edit_tr">
<?php } else { ?>
<tr id="trlove<?php echo $i; ?>" bgcolor="#f2f2f2" class="edit_tr">
<?php } ?>
<td width="50%" class="edit_td">
<input type="checkbox" value="firstname<?php echo $i; ?>" class="editbox" name="first_input_<?php echo $i; ?>" />
</td>
</tr>

<?php
$i++;
}
?>

</table>
</div>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

JQuery将使用$ .ajax与服务器通信,最好是POST。

服务器将尝试使用PHP和MySQLi删除数据库行。
如果成功或不成功的PHP回显并为jQuery解释有用的响应。这可能只是truefalse

ajax等待该响应,当它到达时将保持原样,或者将其切换到删除失败时的状态。您可能想确认该操作是否成功。

所以人们不在这里编写你的代码,你需要深入研究这个问题。对于经验丰富的开发人员来说,这很容易,但如果你不尝试,你就不会学习。如果遇到编程问题,请随时提出进一步的问题。

示例jQuery 未选中

<label><input type="checkbox" value="1" name="apples" class="savedelete" />Save/Delete</label>
<label><input type="checkbox" value="1" name="pears" class="savedelete" />Save/Delete</label>

的jQuery

$('.savedelete').on('change', function(){
    // saving or deleting?
    var savedelete;
    if ($(this).is(':checked')) savedelete='save';
    else savedelete='delete';
    // what am I changing?
    var name=$(this).attr('name');

    // call the server
    $.ajax({
      type: "POST",
      url: 'index.php'
      data: {"do": "saveordelete", 
        "whichone": savedelete,
        "name": name
      },
      success: function(data){
        if (data=='true'){ // is string not boolean
            // it worked
        }else{
            // didn't work
        }
      }
    });

});

答案 1 :(得分:0)

 <?php
 include('../dbcon.php');
 $id = $_POST['id'];
 mysql_query("delete from files where file_id = '$id' ")or die(mysql_error());
 ?>

你使用checbox创建id选择器并添加到$ _POST [&#39; selector&#39;];

   <?php
        include('../dbcon.php');
        if (isset($_POST['backup_delete'])){
        $id=$_POST['selector'];
        $N = count($id);
        for($i=0; $i < $N; $i++)
        {
            $result = mysql_query("DELETE FROM teacher_backpack where file_id='$id[$i]'");
        }
        header("location: backack.php");
        }
        ?>