我正在尝试使用AJAX将一些数据发布到另一个页面,但没有信息,我正在尝试传递两个SELECT(下拉菜单)的值。
我的AJAX代码如下:
$('#CreateHTMLReport').click(function()
{
var DeLista = document.getElementById('ClienteDeLista').value;
var AteLista = document.getElementById('ClienteParaLista').value;
$.ajax(
{
url: "main.php",
type: "POST",
data:{ DeLista : DeLista , AteLista : AteLista },
success: function(data)
{
window.location = 'phppage.php';
}
});
});
点击ID为 CreateHTMLReport 的按钮后,它会运行上面的代码,但不会将变量发送到我的phppage.php
我得到的变量如下:
$t1 = $_POST['DeLista'];
$t2 = $_POST['ParaLista'];
echo $t1;
echo $t2;
并收到此错误:Notice: Undefined index: DeLista in...
有人可以帮我传递值吗,我真的需要这样做,因为我有两个按钮,它们不在一个表单内,当我点击其中一个时,它应该重定向到一个页面,另一个到另一页,这就是为什么我不能同时使用相同的形式,我想。如果有人可以帮我解决这个问题,我会很高兴,如何发布这两个值DeLista
和ParaLista
。
修改
这是我的main.php
$('#CreateHTMLReport').on('click',function() {
$.ajax({
// MAKE SURE YOU HAVE THIS PAGE CREATED!!
url: "main.php",
type: "POST",
data:{
// You may as well use jQuery method for fetching values
DeLista : $('#ClienteDeLista').val(),
AteLista : $('#ClienteParaLista').val()
},
success: function(data) {
// Use this to redirect on success, this won't get your post
// because you are sending the post to "main.php"
window.location = 'phppage.php';
// This should write whatever you have sent to "main.php"
//alert(data);
}
});
});
我的phppage.php
if(!empty($_POST['DeLista'])) {
$t1 = $_POST['DeLista'];
# You should be retrieving "AteLista" not "ParaLista"
$t2 = $_POST['AteLista'];
echo $t1.$t2;
# Stop so you don't write the default text.
exit;
}
echo "Nothing sent!";
我仍然没有“没有发送”。
答案 0 :(得分:1)
我认为您有目的地混淆,而且您没有按照密钥检索您要发送的内容。您的脚本中有两个不同的目标。您有main.php
这是Ajax发送帖子/数据的位置,然后您有phppage.php
您的成功重定向到的地方,但这就是您正在尝试从中获取帖子值的地方。 / p>
<强> /main.php 强>
// I would use the .on() instead of .click()
$('#CreateHTMLReport').on('click',function() {
$.ajax({
// MAKE SURE YOU HAVE THIS PAGE CREATED!!
url: "phppage.php",
type: "POST",
data:{
// You may as well use jQuery method for fetching values
DeLista : $('#ClienteDeLista').val(),
AteLista : $('#ClienteParaLista').val()
},
success: function(data) {
// This should write whatever you have sent to "main.php"
alert(data);
}
});
});
<强> /phppage.php 强>
<?php
# It is prudent to at least check here
if(!empty($_POST['DeLista'])) {
$t1 = $_POST['DeLista'];
# You should be retrieving "AteLista" not "ParaLista"
$t2 = $_POST['AteLista'];
echo $t1.$t2;
# Stop so you don't write the default text.
exit;
}
# Write a default message for testing
echo "Nothing sent!";
答案 1 :(得分:-1)
您必须对数据进行urlencode并将其作为application/x-www-form-urlencoded
发送。