0

私がやろうとしているのは、チェックボックスのチェック/オフでそれぞれ(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>
4

2 に答える 2

2

JQueryは$.ajax、できればPOSTを使用してサーバーと通信します。

サーバーは、PHPとMySQLiを使用してデータベース行を削除しようとします。
PHPが成功または失敗した場合は、jQueryが解釈するための有用な応答をエコーし​​て終了します。これは単純に可能性がtrueありますfalse

ajaxはその応答を待機し、応答が到着するとチェックボックスをそのままにするか、削除が失敗した場合は元の状態に切り替えます。アクションが成功したことを確認することをお勧めします。

SOは人々があなたのコードを書くためにここにいるのではありません、あなたはこれを掘り下げる必要があります。ベテランの開発者にとっては簡単ですが、試さないと学ぶことはできません。プログラミングで問題が発生した場合は、遠慮なく質問してください。

例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
        }
      }
    });

});
于 2013-03-15T00:36:05.160 に答える
0
 <?php
 include('../dbcon.php');
 $id = $_POST['id'];
 mysql_query("delete from files where file_id = '$id' ")or die(mysql_error());
 ?>

checbox を使用して ID セレクターを作成し、$_POST['selector']; に追加します。

   <?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");
        }
        ?>
于 2017-12-07T18:56:53.383 に答える