フォームから情報を取得してform.phpに送信し、そこで処理されるこのコードがあります。form.phpは、#successに入力されるはずの変数(フルネーム:$フルネームEメール:$ emailリンク:$ link命令:$ instr)をエコーします。私のコードは、FirefoxとChromeで2つの異なる方法で動作します。
Firefoxでは、出力を正しく表示するform.phpに送信されますが、明らかにそこに送信するべきではありません。メインページにとどまり、その出力を#successで確認する必要があります。基本的に、ajaxは機能しません。
Chromeでは、ajaxは機能しますが、フルネーム:メール:リンク:手順:を#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;
?>