使用AJAX参数的PHP POST不起作用

时间:2012-08-19 13:08:51

标签: php javascript html ajax

我正在使用AJAX来调用PHP脚本,并传递一些参数。

PHP脚本正在使用FPDF创建PDF。我传递给PHP脚本的值只应用于连接脚本中的另一个字符串。

AJAX正在调用PHP脚本并且PDF正在生成它应该生成,但唯一的问题是参数变为空。我不确定我做错了什么,这让我发疯了......

这是我的HTML:

<input type="submit" value="Download Completed DA190" onclick="printCompletedForm()" />
<script type="text/javascript">

function printCompletedForm()
{
    var testDate = "2012-08-19";

    $.ajax({  
        type: "POST",  
        url: "saveZeroRelease.php",
        data: {testdate : testDate},
        success: function(msg){

        },
        error: function(msg){

        }
    });
}

</script>

这是我的PHP:

$testDate = $_POST['testdate'];


$pdf = new PDF_MC_Table();
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont('Arial','',8);
$pdf->Cell(150,10,'Certificate of foreign Currency usage in respect of materials and components in terms of the notes to rebate item ',1);
$pdf->SetFont('Arial','',10);
$pdf->Cell(40,10,'Form C1',1);
$pdf->Ln(10);
$pdf->Cell(190,10,'NOTE:',1);
$pdf->Ln(10);
$pdf->MultiCell(190,10,'Certificate Number:      Effective Date :'.$testDate.'  
Replaces Certificate No:_________________                                                        Effective Date :________________',1);
$pdf->Output();

我不知道我做错了什么。请大家帮忙!

2 个答案:

答案 0 :(得分:0)

首先,在您的JavaScript中,将代码包装在内;

$(document).ready( function() {
//your code here
});

不要忘记链接你的jQuery文件,如;

<script type="text/javascript" src="jquery.js"></script>

另外,在你的php中,改变;

$testDate = $_POST['testdate'];

$testDate = $_POST["testdate"];

希望这有帮助。

答案 1 :(得分:0)

看起来提交表单的默认行为是在您的AJAX调用有时间执行您要求的所有操作之前触发并执行的。查看event.preventDefault()以完全覆盖提交处理程序。提交表单后,您的函数将处理从$ .ajax POST开始,然后根据需要重定向用户的所有内容。