我有一个ajax脚本,可以将数据从联系表单发送到php脚本,但问题是我无法从“select”标记中获取值。我对javascript / ajax的了解有限,所以请原谅任何不恰当的描述或短语,因为我真的只能解释它我是如何知道的。
HTML:
<form action="" method="POST" id="contact">
<table>
<tbody>
<tr>
<td><h2>First Name: </h2></td>
<td><h2>Last Name: </td>
<td><h2>Email Address: </td>
</tr>
<tr>
<td><input type="text" name="first_name"></td>
<td><input type="text" name="last_name"></td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td><h2>Street Address:</h2></td>
<td><h2>What's Dirty?</h2></td>
</tr>
<tr>
<td><input type="text" name="address"></td>
<td>
<select name="job" form="contact">
<option value="house">House</option>
<option value="roof">Roof</option>
<option value="garage-shed">Garage/shed</option>
<option value="other">Other</option>
</select>
</td>
</tr>
<tr>
<td><h2>Message: </h2></td>
</tr>
</tbody>
</table>
<textarea name="message" cols="80" rows="5"></textarea>
<input type="submit" id="submit" name="send" value="Send!" class="send-button">
</form>
的Ajax
<script type="text/javascript">
$("#submit").click(function(e) {
e.preventDefault();
var data_string = $("form#contact").serializeArray();
$.ajax({
type: "POST",
url: "database.php",
data: data_string,
success: function(){
}
});
return false;
});
</script>
PHP
print_r($_POST);
$fname = $_POST['first_name'];
$lname = $_POST['last_name'];
$email = $_POST['email'];
$address = $_POST['address'];
$job = $_POST['job'];
$message = $_POST['message'];
我从脚本中得到的是这个
[first_name] => John
[last_name] => Smith
[email] => j.smith@example.com
[address] => 1234 Jamestown Rd.
请记住,我对此很新,所以一个简单的错误对我来说并不是那么明显。
答案 0 :(得分:1)
我发现问题出在我的html中的一个神秘属性中。
<强> HTML 强>
<select name="job" form="contact">
是我的代码中的猴子扳手,我删除了
form="contact">
一切都很好!
感谢您的帮助!