php – 删除行后进入同一数据页面
发布时间:2020-12-13 15:58:54 所属栏目:PHP教程 来源:网络整理
导读:我有一个表格,显示特定日期的行数.我想删除一行后,回到同一页面并显示相同日期的相同行.示例:如果我在06/06/2015的日期有2行,并且我删除了其中一行,我想返回到同一页面并查看另一行.我有这些代码: Delete.php: ?php require_once ('../include/global.php
我有一个表格,显示特定日期的行数.我想删除一行后,回到同一页面并显示相同日期的相同行.示例:如果我在06/06/2015的日期有2行,并且我删除了其中一行,我想返回到同一页面并查看另一行.我有这些代码:
Delete.php: <?php require_once ('../include/global.php'); $id=$_REQUEST['id']; $sql = "DELETE FROM appoint WHERE id=".$id; $result=mysqli_query($con,$sql) or die('Unable to execute query. '. mysqli_error($con)); if($result){ $sql2 = "SELECT date FROM appoint WHERE id=".$id; $result2=mysqli_query($con,$sql2) or die('Unable to execute query. '. mysqli_error($con)); $rows = mysqli_fetch_array($con,$result2); header("location:appoint.php"); } else { header("location:../update/update_false.php"); } ?> 访问getdata.php: <?php require_once ('../include/global.php'); if($_POST['seldate']) { $selDate = $_POST['seldate']; $sql="SELECT * FROM clinic.appoint WHERE date='$selDate'"; $result = mysqli_query($con,$sql) or die($sql."<br/><br/>".mysql_error()); while($rows=mysqli_fetch_array($result)){ ?> <tr> <td scope="row"><?php echo $rows['time'] ?></td> <td scope="row"><?php echo $rows['name'] ?></td> <td scope="row"><?php echo $rows['date'] ?></td> <td scope="row"><form action='/clinic form/appoint/delete.php'=<?php echo $rows['id']; ?>' method="post"> <input type="hidden" name="id" value="<?php echo $rows['id']; ?>"> <input type="submit" name="submit1" value="Done"> </form> </td> </tr> <?php } } ?> 并且数据显示表的页面为appointment.php: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script language="javascript" type="text/javascript"> $(document).ready(function(){ $("#Date").change(function(){ var seldate =$(this).val(); $("#scheduleDate").html(seldate); var dataString = 'seldate='+ seldate; $.ajax({ type: "POST",url: "getdata.php",data: dataString,cache: false,success: function(data) { $("#Schedule").html(data); } }); }); }); </script> </head> <body> <div class="container12"> <header> <div align="center"> <div class="column12"> <a href="homepage.php"><img src="images/logo.png"/></a> </div> </div> <div align="center"> <div align="center"><a href="logout.php">Logout</a></div> </div> </header> <h1 id="home"> </h1> <div class="alert"></div> <div class="column12" align="left"><B><center>Appointments</B></center><br /> </div> </div> </div> </div> <div class="container12" align="center"> <form action="addApp.php" method="post" name="form1" id="form1"> <table width="700px" class="imagetable" align="center"> <th align="center">Name</th> <th>Date</th> <th>Time</th> <th>Contact Number</th> <th>Action</th> <tr> <td><input type="text" name="name" class="large-fld-app" placeholder="name"/></td> <td><input type="text" name="date" class="large-fld-app" placeholder="DD/MM/YYYY"/></td> <td><input type="time" name="time" class="large-fld-app"/></td> <td><input type="text" name="phone" class="large-fld-app"/></td> <td align="center"><input type="submit" value="" name="submit" class="imgClass_save" /> </td> </tr> </table> </form> </div> <?php //$sql="SELECT * FROM clinic.appoint"; //$result = mysqli_query($con,$sql) or die($sql."<br/><br/>".mysql_error()); //$rows=mysqli_fetch_array($result) ?> <div class="container"> <table> <thead> <tr> Schedule <th scope="row"> <select name="Date" required class="form-control" id="Date"> <option value="">Please Select Date</option> <?php $sql2="SELECT * FROM clinic.appoint GROUP BY date"; $result2 = mysqli_query($con,$sql2) or die($sql2."<br/><br/>".mysql_error()); while($rows2=mysqli_fetch_array($result2)){?> <option value="<?php echo $rows2['date'] ?>"><?php echo $rows2['date'] ?></option> <?php } ?> </select> </th> <td class="schedule-offset" colspan="2" id="scheduleDate"></td> </tr> </thead> <tbody id="Schedule"></tbody> </table> </div> </body> </html> 解决方法
只是一个快速的解决方案:将您的ajax部分放入一个函数中.
更改您的PHP代码以进行删除: require_once ('../include/global.php'); $id = $_REQUEST['id']; # Find the date for which you are deleting... $query = "SELECT date FROM appoint WHERE id = " . $id; $row = mysqli_fetch_assoc(mysqli_query($con,$query)); $request_date = $row['date']; $sql = "DELETE FROM appoint WHERE id=".$id; $result = mysqli_query($con,$sql) or die('Unable to execute query. '. mysqli_error($con)); if($result){ header("Location: appoint.php?date=" . $request_date); } else { header("Location: ../update/update_false.php"); } 现在当你从删除回来时,你有一个$_GET [‘date’].但是当你第一次加载页面时,你没有那个. 现在改变你的JS以适应它.将AJAX部分放在一个函数中. $(document).ready(function(){ $("#Date").change(function(){ var seldate =$(this).val(); display_data(seldate); }); // This is the function... function display_data(seldate) { $("#scheduleDate").html(seldate); var dataString = 'seldate='+ seldate; $.ajax({ type: "POST",success: function(data) { $("#Schedule").html(data); } }); } // Now here is the real code for retaining your Date... <?php if (!empty($_GET['date'])) { ?> display_data('<?php echo $_GET["date"]; ?>') <?php } ?> document.getElementById('Date').value = '<?php echo @$_GET["date"]; ?>'; }); 现在你只需要在dom准备就绪时在特定日期调用display_data()函数. 您还可以使用会话: 示例:在我的php代码中,$request_date存储在会话中. 首先,如果尚未启动session_start(),请启动会话.在所有页面中,HTML和DELETE PHP和UPDATE FAIL页面. $request_date = $row['date']; $_SESSION['date'] = $request_date; 并将重定向部分更改回您的代码. header("Location: appoint.php"); 现在改变我的脚本块的这一部分: 从: <?php if (!empty($_GET['date'])) { ?> display_data('<?php echo $_GET["date"]; ?>'); <?php } ?> document.getElementById('Date').value = '<?php echo @$_GET["date"]; ?>'; 至: <?php if (!empty($_SESSION['date'])) { ?> display_data('<?php echo $_SESSION["date"]; ?>'); <?php unset($_SESSION['date']); } ?> document.getElementById('Date').value = '<?php echo @$_SESSION["date"]; ?>'; 使用会话的优点是,如果删除失败并重定向到“更新失败”页面.之后再次回到列表页面.您将离开该列表的位置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |