使用AJAX

时间:2018-05-04 16:57:47

标签: javascript php ajax

我正在尝试使用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...

有人可以帮我传递值吗,我真的需要这样做,因为我有两个按钮,它们不在一个表单内,当我点击其中一个时,它应该重定向到一个页面,另一个到另一页,这就是为什么我不能同时使用相同的形式,我想。如果有人可以帮我解决这个问题,我会很高兴,如何发布这两个值DeListaParaLista

修改

这是我的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!";

我仍然没有“没有发送”。

2 个答案:

答案 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发送。