晚上好,
我正在开发一个表单处理器,该处理器确定发送给它的表单处理和电子邮件/有时需要将结果返回到我的 jquery 以进行进一步的客户端处理。我遇到的问题是第一次运行脚本时它返回数组,但任何后续运行都不会返回数据。
PHP的
switch ($form){
case 'cta':
echo json_encode(array('callback' => 'cta'));
//echo"";
break;
case "questionaire":
echo json_encode(array('callback' => 'quetionaire'));
break;
case "contact":
echo json_encode(array('callback' => 'contact'));
}
jQuery
function doEmail(form){
$.ajax({
data: $(form).serialize(),
type: 'POST',
url: 'core/process.php',
dataType: 'json',
success: function(data){
$(form +' input, textarea').each(function(){$(this).val("") })
$('#lightbox').fadeOut(600)
$('#responder').fadeOut(600)
alert('form name '+ data.callback);
}
})
}
function inputProcessor(event, form){
var $name = $(form + ' input#name').val();
var $phone = $(form + ' input#phone').val();
var $email = $(form + ' input#email').val();
var $msg = $(form + ' textarea#msg').val();
var $i = 0;
var $i1 = 0;
$(form +' [req=yes]').each(function() {
console.log('step 1')
$i++;
$(this).css('background-color', '');
if(!$(this).val().length) {
event.preventDefault();
$(this).css('background-color', '#ffd7d7');
}
});
$(form +' [req=yes]').each(function() {
console.log('step 2')
if($(this).val().length > 0){
event.preventDefault();
$i1++;
}
});
//if($i1 === $i){
var result = regex.test($email)
console.log('step 3')
if (result === true){
event.preventDefault();
console.log('Testing Email')
doEmail(form);
}else{
$(form +' input#email').css('background-color', '#ffd7d7');
}
//}
}
还应该注意的是,该站点从不刷新所有驻留在隐藏 div 中的内容,这些内容在单击“页面”链接时会显示出来。
提前致谢
编辑“我实际上必须退出浏览器并重新启动它才能获得一个新数组”
编辑 2
1 的 3 形式
<form id="cta" method="post">
<input type="text" req="yes" id="name" class="input" name="name" placeholder="Full Name"/><br>
<input type="text" req="yes" id="phone" class="input" name="phone" placeholder="Phone Number"/><br>
<input type="text" req="yes" id="email" class="input" name="email" placeholder="Email Address"/><br>
<input type="hidden" name="form" value="cta">
<span id="submit_btn">Submit entry</span>
</form>
3 个表格中的 2 个
<form id="contact_form" class=contact_form method="post">
<input type="text" req="yes" id="name" class="input3" name="name" placeholder="Name"/>
<br> <br>
<input type="text" req="yes" id="phone" class="input3" name="phone" placeholder="Phone"/>
<br><br>
<input type="text" req="yes" id="email" class="input3" name="email" placeholder="Email"/>
<br><br>
<textarea id="msg" name="msg" placeholder="Type your message here" class="input3" rows="4"></textarea><br>
<input type="hidden" name="form" value="contact">
<span class="contact_button" id="SubmitContact"><div id="contact_submit">Send message</div></span>
</form>
3 个表格中的 3 个
<form id="response" class=form1 method="post">
<input type="text" req="yes" id="name" class="input2" name="name" placeholder="Name"/>
<br>
<input type="text" req="yes" id="phone" class="input2" name="phone" placeholder="Phone"/>
<br>
<input type="text" req="yes" id="email" class="input2" name="email" placeholder="Email"/>
<br>
<textarea id="msg" name="msg" placeholder="Type your message here" class="input2" rows="4"></textarea><br>
<br>
<input type="hidden" name="form" value="questionaire">
<span class="submit_button" id="Submit"><div id="submit">Send message</div></span>
</form>