在javascript

时间:2015-08-18 07:52:22

标签: javascript php ajax

为了说明我的问题描述,有一个列表可以附加一个或多个任务。

  1. 当用户尝试删除列表时,php代码会检查mysql'tasks'表,看看是否有任何附加到列表中的任务被删除。
  2. 如果有/是任务,系统会提示用户弹出窗口,说删除列表也会删除所有附加的任务,并要求确认。
  3. 单击确定,将继续并删除所有任务,然后删除列表....取消,将不执行任何操作。
  4. 我设计的内容如下,

    <?php
    try 
    {
        $list_id = $_GET['id'];
    
        //Instantiate Database object
        $database = new Database;
    
        //check if task exist for the list to be deleted
        $database->query('SELECT * FROM tasks WHERE list_id = :id');
        $database->bind(':id',$list_id);
        $database->single();
    
        $rc = $database->rowCount();
    
        if($rc > 0)
        { 
    ?>
    
            <script type="text/javascript">  
                    if(confirm('The list has one or more task attached to it. Deleting the list will also delete the attached tasks. Do you want to proceed ?'))
                    {   
                        //prepare and execute delete tasks 
                        $database->query('DELETE FROM tasks WHERE list_id = :id');
                        $database->bind(':id',$list_id);
                        $database->execute();
    
                        //prepare and execute delete lists
                        $database->query('DELETE FROM lists WHERE id = :id');
                        $database->bind(':id',$list_id);
                        $database->execute();
    
                        if($database->rowCount() > 0)
                        {
                            header("Location:index.php?msg=listdeleted");
                        }
                    }   
            </script> 
    <?php 
        }
    }
    catch(Exception $e)
    {
        echo '<p>'.$e->getMessage().'</p>';
    }
    
    ?>  
    

    问题在于 - 代码什么都不做。没错。什么都没有。 我做了一些谷歌搜索,发现大多数人都建议ajax调用这样做。我不知道ajax。所以,要做到这一点,我必须花费相当多的时间。所以,我需要以下两件事 -

    1. 如果ajax是唯一可行的解​​决方案吗?如果没有其他方法可以执行php,我只会去ajax,如上所示
    2. 根据我上面粘贴的代码,任何人都可以建议我更好地实现我想要实现的目标吗?

2 个答案:

答案 0 :(得分:2)

无论

a)学习使用ajax,因为它是最明显的解决方案。一旦你学会了它,你会发现它非常宝贵

或者,如果你真的没有时间

b)使用你的JS&#39;确认&#39;将用户重定向到新的PHP页面,在页面重定向的URL中传递要删除的记录的ID。在新的PHP页面上,处理您的删除,然后使用PHP重定向将用户带回原始页面。

选择选项(a)......

答案 1 :(得分:0)

是的,正如这些家伙所说,ajax将是一个很好的方式来做到这一点。

确认提醒它正在工作? 在你的js函数里面,你不能把php代码放在&#34;&lt; ? PHP ..&GT;?&#34;然后和你一样。