通过发布请求发送数据并返回已处理的值

时间:2017-10-25 16:56:01

标签: javascript php html

我创建了一个html页面(index.html),一旦用户点击提交按钮,表单将处理POST方法并将我的所有数据发送到php端(index.php)来处理数据。一旦php完成处理我的数据,就可以将处理后的数据返回到同一个HTML文档,但我无法弄清楚如何做到这一点。

基本上流程是

  • index.html - >输入和提交表格(POST)
  • processOrder.php - >仅处理信息(用户看不到此页面)
  • 返回index.html,其中包含已处理数据表(用户使用表格更新)

这是我的javascript文件

 function isNumber(idValue,evt) {
    evt = (evt) ? evt : window.event;
    var sum = 0;
    var costOfApple = 0;
    var costOfOrange = 0;
    var costOfBananna = 0;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        document.getElementById(idValue.id).value = "";
        document.getElementById('totalCost').value = "Nan";
        $("#invalid-alert").fadeTo(2000, 500).slideUp(500, function(){
        $("#invalid-alert").slideUp(500);
});
    }
    else
    {
        costOfApple = document.getElementById('apple').value *69;
        costOfOrange = document.getElementById('orange').value *59;
        costOfBananna = document.getElementById('bananna').value *39;
        sum = (Number(costOfApple) + Number(costOfOrange) + Number(costOfBananna)) /100;
        document.getElementById('totalCost').value = "$" + (sum).toFixed(2);
}
}

这是我处理数据的php文件(我无法弄清楚如何将这些数据返回到我的html页面)

<?php
// define variables and set to empty values
$name; $totalCost; $appleNo; $orangeNo; $banannaNo; $appleCost; $orangeCost; $banannaCost; $paymentMethod = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST["name"];
    $paymentMethod = $_POST["payment"];
    $appleNo = $_POST["apple"];
    $orangeNo = $_POST["orange"];
    $banannaNo = $_POST["bananna"];
    $appleCost = $appleNo * 0.69;
    $orangeCost = $orangeNo * 0.59;
    $banannaCost = $banannaNo * 0.39;

    if ($paymentMethod == "Mastercard") {
    $totalCost = ($appleCost + $orangeCost + $banannaCost) *100.12/100 ;
}
    else if ($paymentMethod == "Visa"){
    $totalCost = ($appleCost + $orangeCost + $banannaCost) *100.13/100 ;
}
  else{
    $totalCost = ($appleCost + $orangeCost + $banannaCost) *100.105/100 ;
}
$totalCost =  number_format($totalCost,2);
}
?>

2 个答案:

答案 0 :(得分:0)

尝试在processOrder.php的末尾设置标题,以引导您进入您的页面并将index.html保存到index.php,以便回显结果。

 header("Location: index.php"); 

您还可以在processOrder.php的末尾添加该页面,以引导您访问自己的页面。

include 'index.php';
exit();

您可以通过设置会话来传递数据。将session_start()放在php代码的开头,然后将变量设置为session。为每个变量执行此操作以进行结转。

if ($YourMYSQLResults){                                                                               
$_SESSION['CustomName'] = $CustomData;                                                                   

}

答案 1 :(得分:0)

要从index.php将数据发送回processOrder.php,您需要查看PHP超全局'$_SESSION'变量。

链接: PHP Docs

以下基本用法:

<强> processOrder.php

<?php
 session_start();
 /*
         Your Code............................
 */
 $_SESSION['totalCost'] = $totalCost;
?>

确保在为会话变量赋值之前在每个页面上启动会话。

为会话变量分配值后,您就可以在其他页面上使用它,如下所示:

<强>的index.php

<?php
 session_start();
 echo $_SESSION['totalCost'];
 ?>

当PHP完成执行脚本时,会话通常会自动关闭,但可以使用session_write_close()函数手动关闭。