我正在使用codeigniter。我想使用jQuery提交表单并将表单值存储在数据库中。为此,我写了这段代码:
<form action="" method="post">
<div id="login_err" style="color:#FF0000; text-align: center; padding: 10px;"></div>
<ul>
<li>
<label>Name :</label>
<input type="text" name="name" id="name" />
<span id="name_error"></span>
</li>
<li>
<label>Email :</label>
<input type="text" name="email" id="email" />
<span id="email_error"></span>
</li>
<li>
<label>Telephone :</label>
<input type="text" name="tele" id="tele" />
<span id="tele_error"></span>
<li>
<li>
<label>Message :</label>
<textarea name="message" id="message" /></textarea>
<span id="message_error"></span>
</li>
<li>
<label>How did you hear about us?</label>
<select name="soption" id="soption">
<option selected='selected'></option>
<option>I am a repeat customer<option>
<option>You are recommended to me<option>
<option>Google Search<option>
<option>Travelzoo<option>
<option>News paper artical<option>
<option>Facebook<option>
<option>twitter<option>
</select>
<span id="soption_error"></span>
</li>
<li>
<input type="button" id="form_submit" value="Submit" />
</li>
</ul>
</form>
$('#form_submit').click(function(){
var name1 = $('#name').val();
var email1 = $('#email').val();
var tele1 = $('#tele').val();
var message1 = $('#message').val();
var soption1 = $('#soption').val();
$.ajax({
type: 'post',
url: 'http://localhost/test/index.php/test_con/form',
data: 'name=' + name1 + '&email=' + email1 + '&tele=' + tele1 + '&message=' + message + '&soption=' + soption1,
success: function(data) {
$('#login_err').html('Success ...');
$('#form_submit').attr('action', "www.google.com").submit();
});
}
这是我存储数据库值的方式,但是当我提交表单时,这些值将转移到像www.google.com&#39;这样的微粒链接。但它不能正常工作我会这样做{&#39; http://localhost/test/index.php/test_con/www.google.com&#39;。
答案 0 :(得分:3)
当您通过AJAX提交表单时,您需要停止标准表单提交事件。您可以使用preventDefault()
:
$('#form_submit').click(function(e) {
e.preventDefault();
// the rest of your code here...
});
您还应该删除更改form
操作的行 - 这会产生效果。
答案 1 :(得分:0)
删除你在ajax成功功能中设置动作的行,即。
$('#form_submit').attr('action', "www.google.com").submit();