我尝试使用jQuery将数据从HTML select
发送到PHP文件。不幸的是它不起作用。我已经看过这里提出的所有解决方案,但它仍然无效。这是代码:
<select id="city" name="city" >
<optgroup label="Popular Cities">
<option selected style="display:none;color:#eee;">Entire country</option>
<option value="city1">city 1</option>
<option value="city2">city 2</option>
<option value="city3">city3</option>
<option value="city4">city4</option>
<option value="city5">city5</option>
</select>
$("#city").change(function() {
$.ajax({
url: 'post.php',
type: 'POST',
data: { city: $(this).val() },
success: function(data) {
alert(data);
window.location.replace("post.php");
window.location.reload("post.php");
}
});
});
$city = isset($_POST['city']) ? $_POST['city'] : false;
echo "".$city."";
alert()
有效,但我仍未在post.php
收到任何数据。我也尝试过下面的代码,但仍然无法使用它。
$.post("post.php", { city: $(this).value }, function(data) {
alert(data);
window.location.reload("post.php");
window.location.replace("post.php");
});
有任何帮助吗?
答案 0 :(得分:2)
您需要使用表单,如评论中所述
<form action="post.php" method="get" id="frmForm">
<select id="city" name="city" >
<optgroup label="Popular Cities">
<option selected style="display:none;color:#eee;">Entire country</option>
<option value="city1">city 1</option>
<option value="city2">city 2</option>
<option value="city3">city3</option>
<option value="city4">city4</option>
<option value="city5">city5</option>
</select>
</form>
然后使用jquery提交城市选择表格
$(document).ready(function() {
$("#city").change(function() {
$('#frmForm').submit();
});
然后你可以找到$ _GET ['city']的城市名称;
答案 1 :(得分:0)
这不是你打算如何使用Ajax。你的PHP文件应该做的是处理Ajax请求中发送的数据,并返回一个将由Ajax成功回调处理的内容。
您在此尝试做的是:
post.php
,工作正常,post.php
,因为您正在制作一个完整的新HTTP请求,因此没有先前发送的数据。您应该做的是在select
更改后提交表单,这会将您重定向到post.php
使用HTML,而不是JavaScript。
答案 2 :(得分:0)
也许这适合你想要的东西:
HTML文件:
<form action="post.php" method="POST">
<select id="city" name="city" >
<optgroup label="Popular Cities">
<option selected style="display:none;color:#eee;">Entire country</option>
<option value="city1">city 1</option>
<option value="city2">city 2</option>
<option value="city3">city3</option>
<option value="city4">city4</option>
<option value="city5">city5</option>
</select>
</form>
然后在post.php中有与当前相同的代码。