场景:
单击提交按钮时,将显示具有以下消息的警报框:
提交表格后,您将无法进行任何更改。做 您要提交?
当用户按下确定时,应显示以下消息:
已提交
这是我的尝试:
这是表单的一部分:
注意:我不会显示要提交的表单的全部数据,因为它会占用空间。我仅显示表单提交按钮的主要部分。
<div id="container">
<form action="<?php echo site_url('main/save_appraisal');?>"
method="post" id="appraisalForm" name="appraisalForm">
<?php if($appr_status < '2'){?>
<input type="button" name="submit" id="submitAppraisal"
value="Submit" />
<?php }?>
<form>
</div>
这是我控制器的部分:
public function submitAppraisal(){
$emp_id = $this->input->post('empid');
echo $this->appraisal_model->setAppraisalStatus($emp_id);
echo 'Submitted';
}
这是我模型的部分:
function setAppraisalStatus($employee_id=''){
if($employee_id == ''){
return;
}
$login = $this->session->userdata('username');
$loginid = $this->get_empid_exuname($login);
$sql = "INSERT INTO appraisal_status
(id,employee_id,status,updated_on,updated_by)
VALUES(seq_appraisal_status.nextval,$employee_id,$status,sysdate,'$login')";
$query = $this->db->query ( $sql );
}
这是表单的部分:
<script>
<script type="text/javascript">
$(function () {
$( "#submitAppraisal" ).click(function() {
submitAppraisal();
});
});
function submitAppraisal(){
<?php if($this->session->userdata('userid') == $supervisor){?>
var valid = 0;
$( '.suvinput' ).each(function() {
var vals = $(this).val();
$(this).css('border-color','#ccc');
if(vals == ''){
$(this).css('border-color','#f00');
valid++;
}
});
var confirmSubmit = confirm("You won't be able to make any
changes after submitting the form. Do you want to submit? ");
if(confirmSubmit == false){
return;
}
var params = $('form#appraisalForm').serialize()+ '&submit=Save';
console.log(params);
$.ajax({
url: '<?php echo site_url('main/submitAppraisal');?>',
type: 'post',
data: params,
success: function(data) {
},
error: function(err) {
}
});
}
</script>
这是我的数据库表,名为 appraisal_status :
ID | Employee_ID | Status
当前输出:
当用户按下提交按钮时,会出现以下问题:
You won't be able to make any changes after submitting the form. Do
you want to submit?
当用户按下是时,应该提交表单并将记录插入数据库中,但是既不提交表单也不显示消息。
预期输出:
用户按下提交按钮后,将显示以下消息。
提交表格后,您将无法进行任何更改。做 您要提交?
当用户按下“确定”按钮时,应显示以下消息:
Submitted
我无法弄清楚哪里出了问题?
应进行哪些更正?建议受到高度赞赏。
答案 0 :(得分:1)
Ajax的全部目的是将响应传递给JavaScript,而不是简单地显示它。
这是您的成功功能:
success: function(data) {
},
它接受对变量data
的响应,然后对其不执行任何操作。
您将忽略PHP程序的输出。
如果要显示输出,则需要编写代码以显示它。