I am new to Zend Framework and jQuery. I am trying to delete a row from database on the basis of the returned value of confirm()
. But the problem I am having is that if I press yes or no both times the selected row is deleted. I need to confirm that only when I press yes that only the selected row will be deleted. One thing I am using Zend Framework.
我是Zend Framework和jQuery的新手。我试图根据confirm()的返回值从数据库中删除一行。但我遇到的问题是,如果我按两次是或否,则删除所选行。我需要确认,只有当我按下时才会删除所选行。我使用Zend Framework的一件事。
My codes are given below:
我的代码如下:
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;
}
Thanks in advance, enamul
提前谢谢,enamul
2 个解决方案
#1
0
You are using confirm incorrectly, and your posted code also has lots of doubts.
format your links as below
您使用的确认不正确,您发布的代码也有很多疑问。格式化您的链接如下
<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>
and add this function to your js
并将此功能添加到您的js
<script>
function deleteRecord(url,id)
{
if(confirm('test')){
$.ajax({url:url,success:function(data){alert('Deleted Record')
$("#delete_link_"+id).hide();
}});
}
}
</script>
EDITED :
<script type="text/javascript">
//
$(document).ready();
function deleteRecord(url)
{
if(confirm('test')){
$.ajax({url:url,success:function(data){alert('Deleted Record')}});
}
}
</script>
#2
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;
}
});
});
#1
0
You are using confirm incorrectly, and your posted code also has lots of doubts.
format your links as below
您使用的确认不正确,您发布的代码也有很多疑问。格式化您的链接如下
<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>
and add this function to your js
并将此功能添加到您的js
<script>
function deleteRecord(url,id)
{
if(confirm('test')){
$.ajax({url:url,success:function(data){alert('Deleted Record')
$("#delete_link_"+id).hide();
}});
}
}
</script>
EDITED :
<script type="text/javascript">
//
$(document).ready();
function deleteRecord(url)
{
if(confirm('test')){
$.ajax({url:url,success:function(data){alert('Deleted Record')}});
}
}
</script>
#2
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;
}
});
});