如何使用jQuery确认框从zend中删除数据库中的一行?

时间:2012-07-28 06:45:13

标签: php jquery ajax zend-framework

我是Zend Framework和jQuery的新手。我试图根据confirm()的返回值从数据库中删除一行。但我遇到的问题是,如果我按两次是或否,则删除所选行。我需要确认,只有当我按下时才会删除所选行。我正在使用Zend Framework。

我的代码如下:

index.phtml

<html>
<head>
<style type="text/css" rel="stylesheet">
#simplemodal-overlay {background-color:#000;}
#simplemodal-container {background-color:#333; border:8px solid #444; padding:12px;}
#simplemodal-container a.modalCloseImg {
    background:url(x.png) no-repeat; /* adjust url as required */
    width:25px;
    height:29px;
    display:inline;
    z-index:3200;
    position:absolute;
    top:-15px;
    right:-18px;
    cursor:pointer;
}

</style> 
<script type="text/javascript" src="/jQuery.js"> </script>
<script type="text/javascript" src="/jquery.simplemodal-1.4.2.js"></script>
<script type="text/javascript">


$(document).ready(function(){
    //alert("test");
    $(".delete").click(function(e){
        //$('p').attrib('id');
        //e.preventDefault();
        //$("#deleteForm").modal();
        if(confirm("test"));

    });

    });
</script>
</head>
<center>
<?php         
echo "Student List";

?>
<p><a href="<?php echo $this->url(array('controller'=>'index', 
        'action'=>'add'));?>">Add new student</a></p>
<table border="1">
<tr>
    <th>Name</th>
    <th>Email</th>
    <th>Phone</th>
    <th>Action</th>
</tr>
<?php foreach($this->students as $student) : ?>
<tr>

    <td><?php echo $student->name;?></td>
    <td><?php echo $student->email;?></td>
    <td><?php echo $student->phone;?></td>

    <td>
        <a href="<?php echo $this->url(array('controller'=>'index', 
            'action'=>'edit', 'id'=>$student->id));?>">Edit</a>
        <a class="delete" href="<?php echo $this->url(array('controller'=>'index', 
            'action'=>'delete','id'=>$student->id));?>">Delete</a>
    </td>
</tr>

<?php endforeach; ?>
</table>

</center>

</html>

IndexController.php

<?php

class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
      //  $test = new Application_Model_DbTable_Email();

    }

    public function indexAction()
    {
          $this->_helper->layout->disableLayout();
        $students = new Application_Model_DbTable_Students();
        $this->view->students = $students->fetchAll();
    }

    public function addAction()
    {
        $form = new Application_Form_Student();
        $form->submit->setLabel('Add');
        $this->view->form = $form;

        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $name = $form->getValue('name');
                $email = $form->getValue('email');
                $phone = $form->getValue('phone');
               // $image = $form->getValue('image');
                $students = new Application_Model_DbTable_Students();
                $students->addStudent($name, $email,$phone);

                $this->_helper->redirector('index');
            } else {
                $form->populate($formData);
            }
        }

    }

    public function editAction()
    {
        $modelStudents = new Application_Model_DbTable_Students();
        $id = (int) $this->_getParam('id');

        $student = $modelStudents->fetch($id);

        $form = new Application_Form_Student($student->email);
        $form->submit->setLabel('Save');
        $this->view->form = $form;
       if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $id = (int)$form->getValue('id');
                $name = $form->getValue('name');
                $email = $form->getValue('email');
                $phone = $form->getValue('phone');
                $students = new Application_Model_DbTable_Students();
                $students->updateStudent($id, $name, $email, $phone);

                $this->_helper->redirector('index');
            } else {
                $form->populate($formData);
            }
        } else {
            $id = $this->_getParam('id', 0);
            if ($id > 0) {

                $form->populate($modelStudents->getStudent($id));
            }
        }

    }

    public function deleteAction()
    {

                //$id = $this->getRequest()->getPost('id');
            $students = new Application_Model_DbTable_Students();
            $id = $this->_getParam('id', 0);
            $students->deleteStudent($id);
            $this->_helper->redirector('index');

    }

    //echo $test;

}

提前致谢, enamul

2 个答案:

答案 0 :(得分:0)

您使用的确认不正确,您发布的代码也有很多疑问 格式化您的链接如下

 <a class="delete" id="delete_link_<?php echo $student->id?>" href="jacascript:void(0)" onclick="deleteRecord('<?php echo $this->url(array('controller'=>'index', 
            'action'=>'delete','id'=>$student->id));?>',<?php echo $student->id?>)">Delete</a>

并将此功能添加到您的js

   <script>
    function deleteRecord(url,id)
    {
      if(confirm('test')){ 
      $.ajax({url:url,success:function(data){alert('Deleted Record')
                                             $("#delete_link_"+id).hide();
                                               }});

      }    
   }
    </script>

已编辑:

<script type="text/javascript">

//
$(document).ready();

  function deleteRecord(url)
        {
          if(confirm('test')){ 
          $.ajax({url:url,success:function(data){alert('Deleted Record')}});
          }    
       }

</script>

答案 1 :(得分:0)

    $(document).ready(function(){
    //alert("test");
    $(".delete").click(function(e){
        //$('p').attrib('id');
        //e.preventDefault();
        //$("#deleteForm").modal();
        if(confirm("test"))
{
return true;
}
else
{
return false;
}

});

});