使用 POST 从 JQuery/JavaScript 在 PHP 中进行计算


Do calculations in PHP from JQuery/JavaScript using POST

作为我作业的一部分,我需要制作一个计算器,但必须在PHP中进行计算。当单击"="按钮时,需要将存储的数字和操作发送到PHP进行计算。有人可以帮助我实现这一目标吗?

我目前在 JQuery 中运行计算,但需要它在 PHP 中

$(".equals").click(function() {
var result;
number2 = parseFloat($result.val());
// Addition
if(operator === "+") {
    result = number1 + number2;
// Subtraction  
} else if (operator === "-") {
    result = number1 - number2;
// Multiplication   
} else if (operator === "*") {
    result = number1 * number2;
// Division
} else if (operator === "/") {
    result = number1 / number2;
}
    $result.val(result);
});
如果你

使用的是jQuery,那么你可以利用它的$.ajax功能将数据发布到脚本中。只需记住适当地设置您的 http 响应代码和退出,并在将表单数据发送到 PHP 脚本之前对其进行序列化。

                      var fData = $("your_form_selector").serialize()
                      $.ajax({
                      type: 'POST',
                      url: 'url_of_script.php',
                      data: fData
                  }).done(function(response){
                        alert(response);
                  }).fail(function(data) {
                    if (data.responseText !== '') {
                      alert(data.responseText);
                    } else {
                        /** DEBUGGING
                          var fObj = data;
                          for(var key in fObj) {
                          alert('key: ' + key + ''n' + 'value: ' + fObj[key]);
                         }                       **/
                    }
                    });
如果您需要调试正在

发生的事情,只需取消注释调试并查看您的处理内容。

如果你在Jquery ajax上查看了它的文档,你可以很容易地找到你需要的所有信息。在我看来,他们的文档非常好。

希望对你有帮助

以下是您问题的解决方案:

if (isset($_POST) && !empty($_POST))
{
    $num1 = $_POST['num1'];
    $num2 = $_POST['num2'];
    $op   = $_POST['op'];

   $ans = eval("return $num1 $op $num2;");
   echo $ans;
}

首先,您需要通过 $_POST 数组获取 PHP 中运算符的表单字段,然后切换以通过运算符并根据运算符分配$result变量。

<?php
if ($_SERVER['REQUEST_METHOD'] == 'post'){
    $operator = $_POST['name or your operator input'];
    $num1 = $_POST['number1 named input'];
    $num2 = $_POST['number2 named input'];  
}
$result = 0;
switch($operator){
    case '+':
        $result = $num1 + $num2;
    break;
    case '-':
        $result = $num1 - $num2;
    break;
    case '/':
        $result = $num1 / $num2;
    break;
    case '*':
        $result = $num1 * $num2;
    break;
    default:
        echo "Invalid operator";
}
  http_response_code(200);
  echo $result;
  exit();
?>