我的控制器命名表单中有一个php函数,我想根据条件显示一些消息。
我在if else块中回显消息。但是,不是存储在msg参数中并以AJAX的成功函数中给出的格式显示,而是显示在新页面中回显的消息。
<script type="text/javascript">
$("#sign_up").click(function() {
var form_data = {
firstName: $('#firstName').val(),
secondName: $('#secondName').val(),
email: $('#email').val(),
password: $('#password').val()
};
$.ajax({
url: "<?php echo site_url('form/submit'); ?>",
type: 'POST',
data: form_data,
success: function(msg) {
if (msg == 'YES') {
$('#alert-msg').html('<div class="alert alert-success text-center">Your mail has been sent successfully!</div>'); }
else if (msg == 'NO') {
$('#alert-msg').html('<div class="alert alert-danger text-center">Error in sending your message! Please try again later.</div>'); }
else {
$('#alert-msg').html('<div class="alert alert-danger">' + msg + '</div>'); }
}
});
return false;
});
</script>
感谢所有试图帮助的人!!
答案 0 :(得分:1)
尝试使用这种方式。
<script type="text/javascript">
$("#sign_up_form").submit(function() {
var form_data = {
firstName: $('#firstName').val(),
secondName: $('#lastName').val(),
email: $('#email').val(),
password: $('#password').val()
};
$.ajax({
url: "<?php echo site_url('form/submit'); ?>",
type: 'POST',
data: form_data,
success: function(msg) {
if (msg == 'YES') {
$('#alert-msg').html('<div class="alert alert-success text-center">Your mail has been sent successfully!</div>'); }
else if (msg == 'NO') {
$('#alert-msg').html('<div class="alert alert-danger text-center">Error in sending your message! Please try again later.</div>'); }
else {
$('#alert-msg').html('<div class="alert alert-danger">' + msg + '</div>'); }
}
});
return false;
});
</script>
此处不是使用点击事件,我建议使用提交事件,secondName: $('#secondName').val(),
中出现错误,将其更改为secondName: $('#lastName').val(),
。
你的表格将是
<div id="alert-msg"></div>
<?php
echo form_open("form/submit", array("id"=>"sign_up_form"));
?>
<div class="input-group">
<input type="text" class="form-control" name="firstName" placeholder="First Name" id="firstName">
<input type="text" class="form-control" name="lastName" placeholder="Last Name" id="lastName">
</div>
<input type="email" class="form-control" name="email" placeholder="Email" id="email">
<input type="password" class="form-control" name="password" placeholder="Password" id="password">
<div style="text-align:center;margin-top:20px">
<button type="submit" class="btn btn-primary" id="sign_up">Sign Up</button>
</div>
答案 1 :(得分:1)
首先,您需要使用preventDefault()
函数,如下所述。它可以帮助您停止将页面重定向到新页面。
$("#sign_up").click(function(e) {
e.preventDefault():
第二次更正,在Ajax中调用添加dataType
,如下所述。
$.ajax({
url: '<?php echo site_url('form/submit'); ?>',
type: 'POST',
data: form_data,
dataType: 'json',
success: function(msg) {
这会对你有所帮助。如果它不起作用,请告诉我。