Javascript 通过ajax发送包含公式的变量,并将其返回到jquery

Javascript 通过ajax发送包含公式的变量,并将其返回到jquery,javascript,php,jquery,Javascript,Php,Jquery,我正在尝试编写一个代码,我将能够通过ajax发送一个包含数学方程的变量,并使用php进行计算 我遇到的问题是,一旦php将变量返回给jquery,它就不会计算它,而是将它作为一个等式返回 我就是这样做的 jquery $(".equals").click(function(e){ e.preventDefault(); var firstnum= $("#firstnum").val(); var secnum= $("#secnum").val(); var operator= $('

我正在尝试编写一个代码,我将能够通过ajax发送一个包含数学方程的变量,并使用php进行计算

我遇到的问题是,一旦php将变量返回给jquery,它就不会计算它,而是将它作为一个等式返回

我就是这样做的

jquery

$(".equals").click(function(e){
e.preventDefault();
var firstnum= $("#firstnum").val();
    var secnum= $("#secnum").val();
var operator= $('#operator').val();

var compute = firstnum+operator+secnum;
content = {compute:compute}
    $.ajax({
    url:'compute.php',
    type:'POST',
    data:content,
    success:function(response){
        console.log(response);
    }
    });     
});
php

例如,我的变量计算的内容是

10+10

php仍将按原样返回它

我想要发生的是,一旦它从php返回,它将作为

二十

有没有办法做到这一点


谢谢

如果你想让PHP来计算它,你应该这样写。因为当您发送10+10时,PHP将其视为字符串

Javascript:

$(".equals").click(function(e){
    e.preventDefault();
    var firstnum= $("#firstnum").val();
    var secnum= $("#secnum").val();
    var operator= $('#operator').val();

    content = {first_number:firstnum,second_number:secnum,operator:operator}
    $.ajax({
        url:'compute.php',
        type:'POST',
        data:content,
        success:function(response){
            console.log(response);
        }
    });     
});
在PHP上:

<?php
     $content = $_POST['content'];
     if( '+' == $content['operator'] ){
         echo $content['first_number'] + $content['second_number'];
     }
     else if( '-' == $content['operator']){
         //extraction 
     }
     // so on.. 
?>

您必须在PHP的服务器端有一个计算器脚本。 必须解析数学表达式。你可以用这样的东西

用于解析更复杂的表达式。
如果您必须处理更简单的数字,您可以指定一个运算符,并将这两个数字作为额外的POST变量

您需要通过PHP来实现这一点。现在发生的事情正是我对当前代码的预期。Scimonster的意思可能是,尽管他没有这么说,但您的PHP代码实际上对您的表达式没有任何作用。这仅仅是因为PHP接收它作为一个字符串,而不知道它的任何信息,然后输出相同的字符串。PHP在任何时候都不会被告知它必须对字符串做任何事情。。。所以它不…您当前的PHP代码完全符合预期。它返回未更改的输入字符串。您需要添加一些代码,使用接收到的公式实际执行计算,并将结果发送回。另外,避免盲目地评估从客户那里得到的信息。如果允许的话,恶意用户可以破坏您的站点。
<?php
     $content = $_POST['content'];
     if( '+' == $content['operator'] ){
         echo $content['first_number'] + $content['second_number'];
     }
     else if( '-' == $content['operator']){
         //extraction 
     }
     // so on.. 
?>