页面如图所示,我想实现的功能是,删除所选中的数据,成功或失败后,在下面显示提示信息,用js实现!页面文件是member.php,点击“删除所选”按钮,将向delete_bms.php发送所选择的数据
表单代码如下,function display_user_urls($url_array)
{
if(is_array($url_array)  && count($url_array) > 0)
{
echo "<p>我的所有收藏</p>";
echo "<form>";// name='bm_table' action='../delete_bms.php' method='post'>";
echo "<table ><tr><th>收藏名称</th><th>收 藏</th><th>操作</th><th>选 择</th></tr>";
foreach($url_array as $url)
{
//$db = db_connect( );
@$db = new mysqli('localhost', 'ellizzu', '1234', 'book');
if(mysqli_connect_errno())
{
echo "数据库连接失败";
exit;
}
$query = "select name from book where username='".addslashes($_SESSION['current_user'])."' and url='".addslashes($url)."'";
$result = $db->query($query);
if(!$result)
{
echo "向数据库查询名称失败";
exit;
}
$row = $result->fetch_array( );
$bm_name = stripslashes($row[0]);
echo "<tr><td align='center'>".$bm_name."</td>";
echo "<td><a href='".htmlspecialchars($url)."'>".$url."</a></td>";
echo "<td><a href='../modify_bm.php?bm_name=".$bm_name."&url=".$url."'>修改</a></td>";
echo "<td align='center'><input type='checkbox'  name='del[]' value='".$bm_name."' /></td></tr>";//checkbox部分
}
echo "<tr><td><input type='submit' value='删除所选' onClick='delBm()'/></td></tr>";//调用js
echo "</table></form>";
echo "<div id='delresult'></div>";
}
else
{
echo "<p>您还未添加任何书签</p>";
}
}
点击删除所选后,调用js部分如下function delBm() {
  var url = "../delete_bms.php";
  url = url+ "?del=" + document.getElementsByName('del[]').value;
  myReq = getXMLHTTPRequest();
  myReq.onreadystatechange = showDelResponse;
  myReq.open("GET",url,true)
  myReq.send(null);
}
function showDelResponse( )
{
  if (myReq.readyState == 4 || myReq.readyState=="complete")
  {
   result = myReq.responseText;
   document.getElementById('delresult').innerHTML = result;
   }
}现在问题时,当选中目标后,点击删除所选,没有反应,无法向delete_bms.php页面传值,看url地址,好像选中目标数据已经接收了,但是url仍是当前页面,请问如何解决这个问题,或者有其他方法实现类似的功能呢?

解决方案 »

  1.   

    稍微看了下代码,也还没完全弄明白你的问题.不过如果代码这么写
       foreach($url_array as $url)
            {
                //$db = db_connect( );
                @$db = new mysqli('localhost', 'ellizzu', '1234', 'book');那就干脆
    重构
    关键词 ajax  
    删除提交数据给php php 删除成功后返回数据给js js 控制 checkbox
      

  2.   

    就是点击删除所选按钮调用js函数delBm(),把所选择checkbox对应的bm_name传给delete_bms.php,该文件每个bm_name删除对应的数据,然后返回删除结果给js的showDelResponse函数
      

  3.   

    既然是无刷新则应该这样: <input type='button' value='删除所选' onClick='delBm()'/>
    否则,表单会提交刷新。还有 document.getElementsByName('del[]').value 这里也不对。
    document.getElementsByName('del[]') 是一个集合,需迭代它的value值。
      

  4.   

    document.getElementsByName('del[]')
    返回的是一个数组,包括全部名为 del[] 的对象
    你至少需要
    var el = document.getElementsByName('del[]');
    var dels = [];
    for(i=0; i<el.length; i++) {
      if(el[i].checked) dels.push('del[]=' + el[i].value);
    }
    url = url+ '?' + dels.join('&');