-2

さて、これは更新されたメインのphpページです。これをきれいにするために以前の投稿をクリアしました。参考までに...ここに投稿しているのは、私の実際のページの正確なレプリカである私のテストページです..異なるphpページ名を持っているだけです...

    <link href="jquery-ui-1.10.2.custom/css/dark-hive/jquery-ui-1.10.2.custom.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="jquery-ui-1.10.2.custom/js/jquery-1.9.1.js" ></script>
    <script type="text/javascript" src="jquery-ui-1.10.2.custom/js/jquery-ui-1.10.2.custom.js" ></script>
    <script type="text/javascript" src="jquery-ui-1.10.2.custom/js/jquery-ui-1.10.2.custom.min.js" ></script>


    <link rel="stylesheet" href="style.css" />
    <script type="text/javascript" src="SMP1_deletefromDB.js"></script>
    <script>

   $(document).ready(function(){
      $("#results").show();
    });
    </script>
    <script type="text/javascript">
         $(document).ready(function(){
            $("#RetrieveList").on('click',function() {
                var xid = $('#XiD').val();
                var date = $('#Date').val();
                $.post('resultgenerator_test.php',{xid:xid, date:date}, function(data){
                $("#results").html(data);
                });
                return false;
            });
             });

        //post to delete.php file. In delete.php you can get the id's in $_POST['id'] as multidimensional array. You can handle the delete operation based on that
         $(document).ready(function(){
         $("#DeletefromDB").on('click',function() {
         //get all the checked values from checkboxes
         var ids = $('input[name=checkbox]:checked').map(function () {
             return this.value;
         }).get(); 

         if (ids.length === 0) 
             return false; //show some error message

         //post to delete.php file. In delete.php you can get the id's in $_POST['id'] as multidimensional array. You can handle the delete operation based on that
         $.post('deletedata.php',{id : ids}, function(data){
         $("#results").html(data);
             //handle the message based on success or error
         });

          return false;
    });
     });

    </script>

    </head>

    <body class="oneColFixCtrHdr">

    <div id="container" style="width:auto">
      <div id="header" style="background-color:#7BD12E">
        <h1 align="left" style="color:#FFF; font-family: Arial, Helvetica, sans-serif;">PIS  Ticket Tracking System</h1>
      <!-- end #header --></div>
       <div id="mainContent">
        <h1 style="font-size:9"></h1>
        <form id="form1" name="form1" method="post" action="">
          <p>
            <label for="Back"></label>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" name="Back" id="Back" value="Back To Main" href="#" onclick="return backAway();" />
          </p>
        </form>
        <form id="form2" name="form2" method="post" action="">

          <table width="741" border="0" align="center">
            <tr>
              <th colspan="9" align="center" style="font-size:12px" scope="col">Xid, Name:<span>
                <select name="XiD" id="XiD">

                  <option value="AAA">AAA</option>
                  <option value="BBB">BBB</option>
                  <option value="CCC">CCC</option>
                  <option value="DDD">DDD</option>
                  <option value="EEE">EEE</option>
                  <option value="FFF">FFF</option>
                  <option value="" selected="selected"></option>
                </select>
              </span><span style="font-size:12px">
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="date">Date:</label>
              <input type="text" name="Date" id="Date" />
              </span></th>
            </tr>
            <tr>
              <th colspan="9" scope="col">&nbsp;</th>
            </tr>
            <tr>
              <th colspan="9" scope="col">
                <div align="center">
                  <input name="action" type="button" id="RetrieveList" value="Retrieve List" />
                  <input name="action" type="button" id="DeletefromDB" value="Delete from DB" />
                  <input name="Clear" type="reset" id="Clear" value="Clear" />
                </div>
                <label for="Clear"></label>
                <div align="center"></div></th>
            </tr>

          </table>
    </form>
        <div id="results">
        </div>
      </div>

データをテーブル形式にエコーする 2 番目の php ページを次に示します。

   jQuery(document).ready(function () {
  jQuery("input[name=checkall]").click(function () {
    jQuery('input[name=checkall]').prop('checked', this.checked);
    jQuery('input[name=checkbox]').prop('checked', this.checked);
  });


  // if all checkbox are selected, check the selectall checkbox
  // and viceversa
  jQuery("input[name=checkbox]").click(function(){

    if(jQuery("input[name=checkbox]").length == jQuery("input[name=checkbox]:checked").length) {
        jQuery("input[name=checkall]").prop("checked", true);
    } else {
        jQuery("input[name=checkall]").prop("checked", false);
    }
  });
});

</script>
<?php
require 'include/DB_Open.php';

$xid = $_POST['xid'];
$date = $_POST['date'];

$sql="SELECT ars_no, phone_number, category_1, category_2, status, create_date, resolved_date, trouble_type_priority, ban_type, employee_id_name 
        FROM tbl_main
        WHERE employee_id_name = '" . $xid . "' AND resolved_date = '" . $date . "'";
$myData = mysql_query($sql);



echo "<table width='auto' cellpadding='1px' cellspacing='0px' border=1 align='center'>
<tr>
<th align='center'><input id=checkall name=checkall type=checkbox value='' /></th>
<th align='center'>Remedy Ticket No.</th>
<th align='center'>Phone/Incident No.</th>
<th align='center'>Category 2</th>
<th align='center'>Category 3</th>
<th align='center'>Status</th>
<th align='center'>Create Date</th>
<th align='center'>Severity</th>
<th align='center'>Ban Type</th>
<th align='center'>Resolved Date</th>

// *このヘッダーを追加して、employee_id_name もフェッチしますが、それを非表示にして、3 番目の php から削除できるようにします...次を使用しましたが、Xid 列に非常に小さなセルを表示しています... *

<th align='center' style='display:none'>XiD</th>
</tr>"; 


while($info = mysql_fetch_array($myData)) 
{ 
echo "<form action='resultgenerator_test.php' method='post'>";

echo"<tr>"; 
echo "<td align='center'>" . "<input type=checkbox name=checkbox value=" . " </td>";
echo  "<td align='center'>" . $info['ars_no'] . "<input type=hidden name=ars_no value=" . $info['ars_no'] . " </td>";
echo  "<td align='center'>" . $info['phone_number'] . "<input type=hidden name=phone_number value=" . $info['phone_number'] . " size='11' maxlength='11' /> </td>"; 
echo  "<td align='center'>" . $info['category_1'] . "<input type=hidden name=category_1 value=" . $info['category_1'] . "' /> </td>"; 
echo  "<td align='center'>" . $info['category_2'] . "<input type=hidden name=category_2 value=" . $info['category_2'] . "' /> </td>";
echo  "<td align='center'>" . $info['status'] . "<input type=hidden name=status value=" . $info['status'] . "' /> </td>"; 
echo  "<td align='center'>" . $info['create_date'] . "<input type=hidden name=create_date value=" . $info['create_date'] . "' /> </td>";
echo  "<td align='center'>" . $info['trouble_type_priority'] . "<input type=hidden name=trouble_type_priority value=" . $info['trouble_type_priority'] . " size='1' maxlength='1' /> </td>"; 
echo  "<td align='center'>" . $info['ban_type'] . "<input type=hidden name=ban_type value=" . $info['ban_type'] . " size='1' maxlength='1' /> </td>";
echo  "<td align='center'>" . "<input type=text name=resolved_date value=" . $info['resolved_date'] . " size='8' maxlength='8' /> </td>";
echo  "<td align='center'>" . "<input type=hidden name=employee_id_name value=" . $info['employee_id_name'] . "' /> </td>";
echo "</tr>"; 
echo "</form>";
} 
echo "</table>"; 

include 'include/DB_Close.php';
?>
</body>
</html>

あなたが提案し、説明したように作成した3番目のphpページを見てください...コードにエラーがある場合は修正してください:

最新の更新 PHP を削除:

<?php
require 'include/DB_Open.php';

$id = $_POST['id'];
$idtodelete = "'" . implode("','",$id) . "'";

$query = "DELETE FROM tbl_main WHERE ars_no in (" . $idtodelete . ")";
$myData = mysql_query($query);

include 'include/DB_Close.php';
?>

すべての助けをありがとう... :)

4

3 に答える 3

1

ここで行う必要があるのは、送信ボタン名を使用して更新および削除操作を処理することです。必要なことは、同じ名前で値が異なる 2 つの送信ボタンを作成することです。

これはあなたのフォームです:

<form action="" method="post">
    <input name="action" type="submit" id="RetrieveList" value="RetrieveList" />
    <input name="action" type="submit" id="DeletefromDB" value="DeleteFromDB" />
    <input name="Clear" type="reset" id="Clear" value="Clear" />
</form>

action2 つのsubmitボタンに同じ名前を付けました。このフォームが送信さ$_POST['action']れると、サーバー側で確認できます。

次のように実行できます。

if ($_POST['action'] == 'RetrieveList') {
    //retreive list functionality
} elseif ($_POST['action'] == 'DeleteFromDB') {
    //delete from dB functionality.
}

アップデート:

次のようにフォームを変更する必要があります。

echo "<form action='resultgenerator.php' method='post'>";
    echo '<input name="action" type="submit" id="DeletefromDB" value="Delete from DB" />';
    echo "<table width='auto' cellpadding='1px' cellspacing='0px' border=1 align='center'>
            <tr>
            <th align='center'><input id=checkall name=checkall type=checkbox value='' /></th>
            <th align='center'>Remedy Ticket No.</th>
            <th align='center'>Phone/Incident No.</th>
            <th align='center'>Category 2</th>
            <th align='center'>Category 3</th>
            <th align='center'>Status</th>
            <th align='center'>Create Date</th>
            <th align='center'>Severity</th>
            <th align='center'>Ban Type</th>
            <th align='center'>Resolved Date</th>
            </tr>"; 

    while($info = mysql_fetch_array($myData)) { 
        echo"<tr>"; 
            echo "<td align='center'>" . "<input type='checkbox' name='checkbox[]' value='add the id here which needs to be deleted'/></td>";
            echo  "<td align='center'>" . $info['ars_no'] . "<input type=hidden name=ars_no value=" . $info['ars_no'] . " </td>";
            echo  "<td align='center'>" . $info['phone_number'] . "<input type=hidden name=phone_number value=" . $info['phone_number'] . " size='11' maxlength='11' /> </td>"; 
            echo  "<td align='center'>" . $info['category_1'] . "<input type=hidden name=category_1 value=" . $info['category_1'] . "' /> </td>"; 
            echo  "<td align='center'>" . $info['category_2'] . "<input type=hidden name=category_2 value=" . $info['category_2'] . "' /> </td>";
            echo  "<td align='center'>" . $info['status'] . "<input type=hidden name=status value=" . $info['status'] . "' /> </td>"; 
            echo  "<td align='center'>" . $info['create_date'] . "<input type=hidden name=create_date value=" . $info['create_date'] . "' /> </td>";
            echo  "<td align='center'>" . $info['trouble_type_priority'] . "<input type=hidden name=trouble_type_priority value=" . $info['trouble_type_priority'] . " size='1' maxlength='1' /> </td>"; 
            echo  "<td align='center'>" . $info['ban_type'] . "<input type=hidden name=ban_type value=" . $info['ban_type'] . " size='1' maxlength='1' /> </td>";
            echo  "<td align='center'>" . "<input type=text name=resolved_date value=" . $info['resolved_date'] . " size='8' maxlength='8' /> </td>";
        echo "</tr>"; 
    } 

    echo "</table>";

echo "</form>";

これで、resultgenerator.phpファイルで次のことを確認できます。

if ($_POST['action'] == 'DeleteFromDB') {
    $ids_to_be_deleted = isset($_POST['checkbox']) ? $_POST['checkbox'] : array();
    //$ids_to_be_deleted will contain all the checked id's from the other page. You can get all those values in the array. Handle the remaining operation for delete here.
}

新しいアップデート :

そのため、jQuery を使用してフォームを送信している場合は、フォーム送信バインディングをボタンのクリック機能に変更することをお勧めします。フォームを次のように変更できます。

  <link href="jquery-ui-1.10.2.custom/css/dark-hive/jquery-ui-1.10.2.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery-1.9.1.min.js" ></script>
<script type="text/javascript" src="jquery-ui-1.10.2.custom/js/jquery-ui-1.10.2.custom.js" ></script>
<script type="text/javascript" src="jquery-ui-1.10.2.custom/js/jquery-ui-1.10.2.custom.min.js" ></script>


<link rel="stylesheet" href="style.css" />
<script type="text/javascript" src="SMP1_deletefromDB.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $("#RetrieveList").on('click',function() {
            var xid = $('#XiD').val();
            var date = $('#Date').val();
            $.post('resultgenerator.php',{xid:xid, date:date}, function(data){
            $("#results").html(data);
            });
            return false;
        });

        $("#DeletefromDB").on('click',function() {
            //get xid for delete like you do above. create a page delete.php or something and make an ajax call to some page to delete data
            return false;
        });
    });
</script>
</head>

<body class="oneColFixCtrHdr">

<div id="container" style="width:auto">
  <div id="header" style="background-color:#7BD12E">
    <h1 align="left" style="color:#FFF; font-family: Arial, Helvetica, sans-serif;">PIS  Ticket Tracking System</h1>
  <!-- end #header --></div>
   <div id="mainContent">
    <h1 style="font-size:9"></h1>
    <form id="form1" name="form1" method="post" action="">
      <p>
        <label for="Back"></label>
        <input type="button" name="Back" id="Back" value="Back To Main" href="#" onclick="return backAway();" />
      </p>
    </form>
    <form id="form2" name="form2" method="post" action="">

      <table width="741" border="0" align="center">
        <tr>
          <th colspan="9" align="center" style="font-size:12px" scope="col">Xid, Name:<span>
            <select name="XiD" id="XiD">

              <option value="AAA">AAA</option>
              <option value="BBB">BBB</option>
              <option value="CCC">CCC</option>
              <option value="DDD">DDD</option>
              <option value="EEE">EEE</option>
              <option value="FFF">FFF</option>
              <option value="" selected="selected"></option>
            </select>
          </span><span style="font-size:12px">
          <label for="date">Date:</label>
          <input type="text" name="Date" id="Date" />
          </span></th>
        </tr>
        <tr>
          <th colspan="9" scope="col">&nbsp;</th>
        </tr>
        <tr>
          <th colspan="9" scope="col">
            <div align="center">
              <input name="action" type="button" id="RetrieveList" value="RetrieveList" />
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="action" type="button" id="DeletefromDB" value="DeleteFromDB" />
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="Clear" type="reset" id="Clear" value="Clear" />
            </div>
            <label for="Clear"></label>
            <div align="center"></div></th>
        </tr>

      </table>
      <p>&nbsp;</p>
    </form>
    <div id="results">
    </div>
  </div>
 </body>
</html>

ここで私が行ったことは、フォーム送信時のバインド イベントと入力タイプ ボタンのクリック イベントのバインドを変更したことです。タイプをボタンに変更しました。

これで、各ボタンのクリック イベントを確認し、操作を処理できるようになりました。

アップデート:

結果divに取得したリストがあると仮定します。ユーザーがチェックボックスをオンにして削除ボタンをクリックすると、次のスクリプトを使用して処理できます。

$("#DeletefromDB").on('click',function() {
     //get all the checked values from checkboxes
     var ids = $('input[name=checkbox]:checked').map(function () {
         return this.value;
     }).get(); 

     if (ids.length === 0) 
         return false; //show some error message

     //post to delete.php file. In delete.php you can get the id's in $_POST['id'] as multidimensional array. You can handle the delete operation based on that
     $.post('delete.php',{id : ids}, function(data){
         //handle the message based on success or error
     });

      return false;
});

アップデート :

これはあなたのdelete.phpファイルである可能性があります

$ids = isset($_POST['id']) ? $_POST['id'] : '';

if (!empty($ids)) {
   //implode the id's separated by commaas
   $ids_to_be_deleted = implode(',', $ids);

   $query = "DELETE FROM your_table WHERE field_to_be_checked IN ($ids_to_be_deleted)";
   //now run your query using mysql_query

}

注意: : mysql* 関数は PHP 5.5.0 で非推奨になり、将来的に削除される予定です。代わりに、MySQLiまたはPDO_MySQLエクステンションを使用する必要があります

これがお役に立てば幸いです:)

于 2013-04-16T12:56:01.087 に答える