0

我想在页面加载时加载数据,但如果我尝试这样做,则删除功能不起作用,每当我插入效果时,应该在表中看到效果而不刷新页面请检查我的代码在此要进行哪些更改

索引.php

<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(document).ready(function(e) {
        $("#Submit").click(function(e) {

        var name = $('#name').val();        
        var message=$('#message').val();
        if($(":text").val().length==0)                      
        {
            $(":text").after('<span class="error">Field cannot be empty</span>');   
            $('#name').addClass('error');   
            $('#message').addClass('error');                
            return;
        }
        else{
            $('#name').removeClass('error');
            $('#message').removeClass('error');
            //$('#propspectDiv').removeClass('error');                          
            $('#propspectDiv').html('Submitting your Request.<img src="ajax.gif" />');  
            $.ajax({
                    url : 'data.php',                   
                    data:{
                        "name" : name,
                        "message" : message             
                    },
                    success : function(data){
                        window.setTimeout(function(){
                            $('#propspectDiv').html('Your Name is added to our records'); 
                            $('#data').css("display","block");  
                            $('#data').html(data);              
                        }, 2000);
                    },
                    complete:function(){
                    $('#myform').each(function(){
                    this.reset();   
                });
           }
                });
        }

        });

    $("a").click(function() {
       $.post('delete.php',{ id: $(this).attr("id")});
    }); 
    });

    </script>

    </head>
    <body>
    <form id="myform">
    <div id="wrapper">
     Name :    <input type="text" id="name"  />
                   </br>
     Message : <input type="text" name="message" id="message" />
                   </br>

        <input type="button" value="Submit"  id="Submit" />
        <div id="propspectDiv"></div>
        <table id="data" border="1" style="display:none;"></table>
    </div>
    </form>
    </body>

数据.php

<?php
$name = $_REQUEST['name'];
$message = $_REQUEST['message'];
include('connection.php');

$sql = "INSERT INTO login (username,message) VALUES ('$name','$message')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }

    $sqlnew = 'Select * from login order by id ASC';
    $res = mysql_query($sqlnew);
    echo'<tr>';
    echo'<td>SrNo.</td>';
    echo '<td>Name:</td>';
    echo '<td>Message:</td>';
    echo '<td>Delete</td>';
    echo'</tr>';
    $i=1;
    while($row = mysql_fetch_array($res))
    {
        echo '<tr>';
        echo'<td>'.$i.'</td>';
        echo'<td>'.$row['username'].'</td>';
        echo '<td>'.$row['message'].'</td>';
        echo"<td id=td1>
          <a href=delete.php?id=".$row['id']."&type=Delete>Delete</a></td>"; 
        echo '</tr>';
        $i++;
    }

?>

删除.php

<?php
include('connection.php');

  if(isset($_REQUEST["id"]))
  {
  $cmd=mysql_query("delete from login where id=" .$_REQUEST["id"] .";");
   header("location: index.php");
  }


?>
4

1 回答 1

0

看起来您正在获取链接的 ID 属性,但没有设置它...

$("a").click(function() {
   $.post('delete.php',{ id: $(this).attr("id")});
});

您现有的删除链接上没有 ID 属性:

 <a href=delete.php?id=".$row['id']."&type=Delete>Delete</a></td>";

另外-当jquery click事件完成所有工作时,您可能不需要指向delete.php的链接href。

此外,由于您通过 jquery 插入 html(包括删除方法),您可能需要使用“on”事件

我正在即兴做这个,所以代码可能有一些小错误,但我相信这是你想要采取的路径......

修改后可能如下所示:

查询

$("a").on("click", function(e) {
  e.preventDefault(); 
  $.post('delete.php',{ id: $(this).attr("id")});
  return false;
});

关联

echo"<td id=td1>
    <a id='".$row['id']."' href='#'>Delete</a>"; 
echo '</tr>';    

需要注意的几件事...

1 - 在我删除相应的表行之前,我实际上并没有验证记录是否被删除 - 你可能想要实现一些东西来检查这个

2 - 删除表格行的替代方法是通过重新提取数据并输出它来更新表格 - 如果你知道我的意思

于 2013-04-12T02:00:49.053 回答