我有这段代码从表单中获取信息并将其发送到 form.php 进行处理。form.php 回显应该输入到#success 的变量(全名:$fullname 电子邮件:$email 链接:$link 说明:$instr)。我的代码在 Firefox 和 chrome 中有两种不同的行为方式。
在 Firefox 中,我被发送到正确显示输出的 form.php,但显然我不应该被发送到那里,我应该留在我的主页上并在#success 中查看该输出。基本上,ajax 不起作用。
在 Chrome 中,ajax 确实有效,但只会将 Fullname: Email: Link: Instructions: 拉入#success。本质上,jQuery 并没有通过 POST 传递变量。
主页.php:
<script type="text/javascript">
$(document).ready(function() {
var data = $(form).serialize();
$('#form').submit(function(event) {
$.ajax({
url: '../wp-content/themes/MC/form.php',
type: 'POST',
data: data,
success: function(result) {
$('#success').html(result);
}
});
event.preventDefault();
});
})
</script>
<div id="exchange_inside">
<div id="formdiv">
<br>
<form method="post" id="form">
Name / Nom:<input type="text" name="fullname" /><br />
E-mail / Courriel:<input type="text" name="email" /><br /> Your Daily URL / Votre URL Quotidien:<input type="text" name="link" /><br />
Voting Instructions / Instructions de Vote:<textarea name="instr" style="width: 450px; height: 100px;"/></textarea><br />
<input type="submit" value="Submit" />
</form>
</div>
</div>
<div id="success">
</div>
表格.php:
<?php
if (isset($_POST['fullname'])){
$fullname = $_POST['fullname'];
}else{
echo "No name";
}
if (isset($_POST['email'])){
$email = $_POST['email'];
}else{
echo "No email";
}
if (isset($_POST['link'])){
$link = $_POST['link'];
}else{
echo "No link";
}
if (isset($_POST['instr'])){
$instr = $_POST['instr'];
}else{
echo "No instructions";
}
echo "Name: " .$fullname. " E-mail: " .$email. " Link: " .$link. " Instructions: " .$instr;
?>