我正在尝试使用Ajax将值发送到其他页面
但是我无法接收这些值,我不知道我哪里错了
这是我的代码
<script type="text/javascript">
function get_more_info() { // Call to ajax function
var fval = document.getElementById('get_usecompny').value;
var dataString1 = "fval="+fval;
alert(fval);
var sval = document.getElementById('country').value;
var dataString2 = "sval="+sval;
alert(sval);
$.ajax({
type: "POST",
url: "getmoreinfo.php", // Name of the php files
data: "{'data1':'" + dataString1+ "', 'data2':'" + dataString2+ "'}",
success: function(html)
{
$("#get_more_info_dt").html(html);
}
});
}
</script>
在警报中,我获得了这些值,但是在“ getmoreinfo.php”页面中,我没有收到任何值
这是我的“ getmoreinfo.php”页面代码
if ($_POST) {
$country = $_POST['fval'];
$country1 = $_POST['sval'];
echo $country1;
echo "<br>";
echo $country;
}
请让我知道我哪里错了!对不起,英语不好
答案 0 :(得分:3)
您传递的参数名称与尝试读取它们的名称不同。
您的data:
参数可以更简单地完成,如下所示
<script type="text/javascript">
function get_more_info() { // Call to ajax function
var fval = document.getElementById('get_usecompny').value;
var sval = document.getElementById('country').value;
$.ajax({
type: "POST",
url: "getmoreinfo.php", // Name of the php files
data: {fval: fval, sval: sval},
success: function(html)
{
$("#get_more_info_dt").html(html);
}
});
}
</script>
或者也切出中间变量,并使用jquery方法从具有这样的id
的元素中获取数据。
<script type="text/javascript">
function get_more_info() { // Call to ajax function
$.ajax({
type: "POST",
url: "getmoreinfo.php", // Name of the php files
data: { fval: $("#get_usecompny").val(),
sval: $("#country").val()
},
success: function(html)
{
$("#get_more_info_dt").html(html);
}
});
}
</script>
答案 1 :(得分:0)
无需创建“ dataString”变量。您可以将数据显示为对象:
$.ajax({
...
data: {
'fval': fval,
'sval': sval
},
...
});
然后在您的PHP中,您可以像这样访问数据:
$country = $_POST['fval'];
$country1 = $_POST['sval'];
答案 2 :(得分:0)
JQuery ajax对象的属性“ data”需要是一个简单的对象数据。 jQuery将根据请求自动将对象解析为参数:
$.ajax({
type: "POST",
url: "getmoreinfo.php",
data: {
fval: document.getElementById('get_usecompny').value,
sval: document.getElementById('country').value
},
success: function(html) {
$("#get_more_info_dt").html(html);
}
});