首页  >  文章  >  后端开发  >  请帮帮忙,我贴代码了,现在不用下载文件看了。

请帮帮忙,我贴代码了,现在不用下载文件看了。

WBOY
WBOY原创
2016-06-23 13:56:05849浏览

a.php  包含一个删除选中书签的复选框function display_user_urls($url_array){  // display the table of URLs  // set global variable, so we can test later if this is on the page  global $bm_table;  $bm_table = true;?>  <br />  <form name='bm_table' action='delete_bms.php' method='post'>  <table width=300 cellpadding=2 cellspacing=0>  <?php  $color = "#cccccc";  echo "<tr bgcolor='$color'><td><strong>Bookmark</strong></td>";  echo "<td><strong>Delete?</strong></td></tr>";  if (is_array($url_array) && count($url_array)>0)  {    foreach ($url_array as $url)    {      if ($color == "#cccccc")        $color = "#ffffff";      else        $color = "#cccccc";      // remember to call htmlspecialchars() when we are displaying user data      echo "<tr bgcolor='$color'><td><a href=\"$url\">".htmlspecialchars($url)."</a></td>";      echo "<td><input type='checkbox' name=\"del_me[]\"             value=\"$url\"></td>";      echo "</tr>";     }  }  else    echo "<tr><td>No bookmarks on record</td></tr>";?>  </table>   </form><?php}


点击上面删除的复选框后,需要点击下方的删除书签<?php  // only offer the delete option if bookmark table is on this page  global $bm_table;  if($bm_table==true)    echo "<a href='#' onClick='bm_table.submit();'>Delete BM</a> | ";   else    echo "<font color='#cccccc'>Delete BM</font> | "; ?>


delete_bms.php 删除函数如下<?php  require_once('bookmark_fns.php');  session_start();   //create short variable names  $del_me = $HTTP_GET_VARS['del_me'];  $valid_user = $HTTP_GET_VARS['valid_user'];   do_html_header('Deleting bookmarks');  check_valid_user();  if (!filled_out($HTTP_GET_VARS))  {    echo 'You have not chosen any bookmarks to delete.         Please try again.';    display_user_menu();    do_html_footer();      exit;  }  else   {    if (count($del_me) >0)    {      foreach($del_me as $url)      {        if (delete_bm($valid_user, $url))          echo 'Deleted '.htmlspecialchars($url).'.<br />';        else          echo 'Could not delete '.htmlspecialchars($url).'.<br />';      }      }    else      echo 'No bookmarks selected for deletion';  }  // get the bookmarks this user has saved  if ($url_array = get_user_urls($valid_user))    display_user_urls($url_array);  display_user_menu();   do_html_footer();?>


delete_bm函数的代码如下function delete_bm($user, $url){  // delete one URL from the database  $conn = db_connect(); //此处已经包含在另一个php文件中,连接数据库是正常的  // delete the bookmark  if (!$conn->query( "delete from bookmark                        where username='$user' and bm_url='$url'"))    throw new Exception('Bookmark could not be deleted');  return true;  }


我按照:http://bbs.csdn.net/topics/390801785这张贴中2位大牛的建议,将delete_bms.php中所有的 $HTTP_GET_VARS改为$_GET,测试之后,显示删除书签成功,调用代码“        echo 'Deleted '.htmlspecialchars($url).'.
';”但是刷新F5刷新网页书签还在,根本没有删除,请各位指点。我进入数据库查看,发现2个书签还在。。

还有个问题就是:为什么没有书签的时候,Delete BM 是不可以点状态,有书签的时候就会显示可用状态?这个代码有写没有书签就不可用吗?请指点。

 echo "Delete BM | ";  这一句代码bm_table.submit()是什么意思?我的php中好像没有submit函数。


回复讨论(解决方案)

bm_table.submit() 就是提交表单,bm_table是表单名,submit是表单方法。



明显是用$_POST获取传递的参数,而不是用$_GET。

$del_me = $_POST['del_me'];
$valid_user = $_POST['valid_user'];

基础还是需要先了解下,不然别人很难给予帮助。

你只判断了delete的query返回结果,而没有去执行mysql_query(“delete”)。

bm_table.submit() 就是提交表单,bm_table是表单名,submit是表单方法。



明显是用$_POST获取传递的参数,而不是用$_GET。

$del_me = $_POST['del_me'];
$valid_user = $_POST['valid_user'];

基础还是需要先了解下,不然别人很难给予帮助。
真是亮瞎我的眼睛了,原来问题出在这里。。测试通过。。
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn