У меня есть этот код, который берет информацию из формы и отправляет ее в form.php, где она обрабатывается. form.php отображает переменные (полное имя: $ полное имя E-mail: $ электронная ссылка: $ link инструкции: $ instr), которые должны быть введены в #success. Мой код ведет себя двумя разными способами в Firefox и Chrome.
В Firefox меня отправляют в form.php, который правильно отображает вывод, но, очевидно, меня туда не отправляют, я должен оставаться на своей главной странице и видеть этот вывод в #success. По сути, Ajax не работает.
В Chrome ajax работает, но тянет только ФИО: E-mail: Ссылка: Инструкции: в #success. По сути, jQuery не передает переменные через POST.
mainpage.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>
form.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;
?>