gpt4 book ai didi

php - 为什么我在 jQuery Mobile 中提交表单时在屏幕上看到值 "undefined"?

转载 作者:可可西里 更新时间:2023-11-01 12:52:44 34 4
gpt4 key购买 nike

这是我的 contactus.html 页面。我正在提交到服务器上的一个 php 页面,该页面将获取信息并发送电子邮件并表示感谢。当我提交表单时,即使我能够收到电子邮件,我在屏幕上看到的也只是“未定义”。

<!DOCTYPE html> 
<html>
<head>
<title>Contact Us</title>
<link rel="stylesheet" href="css/latestjquerymobile.css" />
<link rel="stylesheet" type="text/css" href="css/jquery.mobile.simpledialog.min.css" />

<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="js/latestjquerymobile.js"></script>
<script type="text/javascript" src="js/jquery.mobile.simpledialog.min.js"></script>


<script type="text/javascript">
$(document).ready(function() {

$("#contactus").submit(function(event) {

alert("page submitted");


})

});
</script>
</head>
<body>

<div data-role="page" data-theme="e" id="contactus">

<div data-role="header" data-position="fixed">
<h1>Contact Us</h1>
<a href="home.html" data-icon="back" class="ui-btn-left" data-ajax="false">Back</a>
<a href="home.html" data-icon="home" class="ui-btn-right" data-ajax="false">Home</a>
</div><!-- /header -->

<div data-role="content">

<div align="center">





<form action="http://testsite.com/contactus.php" name="contactus" id="contactus" method="post">


<fieldset>



<div data-role="fieldcontain">

<label for="name"> Name:</label>
<input id="name" name="name" type="text" />

<label for="email">Email:</label>
<input id="email" name="email" type="text" />


<label for="contact">Contact:</label>
<input id="contact" name="contact" type="text" />


<label for="message">Message:</label>
<textarea rows="4" cols="50" id="message" name="message"></textarea>

<br />
<button type="submit" name="submit" value="submit-value">Send</button>


</fieldset>
</div>
</form>




<div><br><br>


<a href="http://www.facebook.com/Apsession"><img src="images/facebook.png" border="0" /></a>

<a href="http://twitter.com/ApsessionMobile"><img src="images/twitter.png" border="0" /></a>


</div>




</div>

</div><!-- /content -->

</div><!-- /page -->

</body>
</html>

这是服务器上 contactus.php 的代码

<?php 
$ToEmail = 'test@testemail.com';
$EmailSubject = 'Contact Form Submission from testsite.com';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Name: ".$_POST["name"]."<br>";
$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>";
$MESSAGE_BODY .= "Contact: ".$_POST["contact"]."<br>";
$MESSAGE_BODY .= "Message: ".$_POST["message"]."<br>";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
?>
<html>
<body>

THANK YOU

</body>
</html>

最佳答案

我不确定您为什么会看到 undefined,但我注意到您没有阻止默认的提交操作。所以你的页面仍然会提交而不是执行 JS。

你需要做几件事:

  1. 阻止默认操作(即提交)
  2. 序列化您的表单数据并通过 ajax 提交。

所以在代码中它看起来像这样:

$(document).ready(function() { 
//Cache DOM reference
var form = $("#contactus");

form.submit(function(event) {
//Prevent the form from regular (non-js) submission
event.preventDefault();

//Serialize your data, using jQuery to make it easer
var data = form.serialize();

//Submit via ajax
$.post(
form.attr('action'),
data,
function(response) {
//You should modify your PHP to return a success or error code, then
//handle appropriately here - eg if (response === 'success") {...
}
);

});

});

关于php - 为什么我在 jQuery Mobile 中提交表单时在屏幕上看到值 "undefined"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787461/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com