PHP可以't接收使用jquery发送的数据.导致php文件上的变量未定义
PHP can't receive data sent using jquery . lead to undifined variable on php file
我正在尝试使用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");
});
有什么帮助吗?
如评论中所述,您需要使用表单
<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找到城市名称;
这不是使用Ajax的方式。PHP文件应该处理Ajax请求中发送的数据,并返回由Ajax成功回调处理的内容。
你想做的是:
- 将数据发布到工作良好的
post.php
- 然后,继续
post.php
,它没有以前发送的数据,因为您正在发出一个全新的HTTP请求
您应该做的是在select
更改时提交表单,这将使用HTML而不是JavaScript将您重定向到post.php
。
也许这符合您的需求:
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中使用与current相同的代码。
相关文章:
- 在javascript中使用json数据导致问题
- javascript API调用导致旧数据
- Mongo/Mongoose快速更新会导致数据丢失
- 对视图上函数的角度绑定导致对数据服务的无限调用
- 谷歌分析实验导致格式良好的字符数据或标记错误
- 使用变量更新剑道图表系列的数据会导致重绘将列从图表上绘制出来
- 流星 - 页面刷新导致在为路由器获取数据时闪烁
- 具有向下钻取的 Highcharts 列会导致主图表中的数据标签模糊,但向下钻取的列除外
- 不输入数据搜索将导致网站库存
- 将数据插入到两个表中,导致“数组到字符串的转换”
- 通过 AJAX 获取 BD 数据,并在数组中获取空,导致 acents
- 使用 JavaScript setTimeout 会导致对象内的数据丢失
- 多个ajax调用导致数据集混合
- 使用数据URI快速更新图像会导致缓存、内存泄漏
- 从.json url中提取数据导致Jquery出错
- 当CSV上没有数据时,它会导致错误.我该如何避免这个错误,Javascript
- XHR请求导致数据丢失
- 跨域ajax导致数据呈现问题
- 在ExtJS存储中使用后,会导致数据之间的差异
- Windows商店js应用程序导航控件导致数据绑定问题