0

JQuery のアコーディオンから行を削除してから、データベースを更新して削除しようとしています。これまでのところ、アコーディオンの行の削除は正常に機能しています。次に、削除された行のインデックスを取得して同じページに戻そうとしています。これにより、MySQL クエリを実行して db の行を削除し、行が削除されたので db からアコーディオンをリロードできます。 .

JavaScript が制限されているため、インデックスを適切に渡していないと思いますか?

助けてくれてありがとう。

 <?PHP    
 if(isset($_POST['id'])){
 $id = intval($_POST['id']);
 mysql_query("DELETE FROM `$db_name`.`$tbl_3` WHERE id='$id'");
 unset($_POST['id']);
 header("Location: ".$siteurl."messenger.php");
 }
 ?>


<SCRIPT>
$(function(){
$( "#inbox" ).accordion({
    collapsible: true,
    icons: { "header": "ui-icon-plus", "headerSelected": "ui-icon-minus" },
    active: false
});

$('#myClicker').click(function() {
    var parent = $(this).closest('DIV');
    var head = parent.prev('DIV');
    parent.add(head).fadeOut('slow',function(){$(this).remove();});
            var index = jQuery(this).find("H4").index(ui.newHeader[0]);
    $.post('messenger.php', { id: index }, function(data) {});
});
});


</SCRIPT>

これは、データベースからのデータを表示する方法です。

<DIV id="inbox">
    <?PHP
      $sql="SELECT * FROM `$tbl_3` ORDER BY id DESC";
      $result = mysql_query($sql);
      while ($row=mysql_fetch_row($result))
      {
    ?>
    <DIV>
        <H4><A href="#"><?PHP echo "".$row[3]."";?></A></H4>
    </DIV>
    <DIV>
        <P><?PHP echo "".$row[4]."";?></P>
        <INPUT type="button" id="myClicker" value="delete"/>
    </DIV>

    <?PHP
    }
    ?>
</DIV>
4

2 に答える 2

0

これを試して

    $('#myClicker').click(function() {
    var parent = $(this).closest('DIV');
    var head = parent.prev('DIV');
    var index = parent.prev('DIV').find("H4").index(ui.newHeader[0]);
    parent.add(head).fadeOut('slow',function(){$(this).remove();});

    $.post('messenger.php', { id: index }, function(data) {});
});
});
于 2012-07-26T14:00:59.920 に答える
0

私はこれらの種類のものに対してまったく異なる方法を使用します。

私がしているのは、アコーディオン、メニュー、テーブル、div をコンパイルする php 関数/ファイルを作成することです。更新が必要な場合は、ジェネレーターへの ajax 呼び出しでコンテナー div の内容を単純にリロードします。

そうすれば、当て推量をすべて取り除き、php スクリプトに 1 つの値を渡すだけで済みます。このスクリプトは、データベースの処理も行うことができます。

于 2012-07-26T13:57:29.680 に答える