在Javascript中使用PHP文件

在Javascript中使用PHP文件,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,我有一个PHP文件包含一些计算。现在,我想将计算集成到另一个文件中的javascript中。如何在javascript中传递变量以在php中进行计算 这是我的javascript代码: $("#upload").on("click", function(){ var csv = $('#csv'); var csvFile = csv[0].files[0]; var ext = csv.val().split(".&q

我有一个PHP文件包含一些计算。现在,我想将计算集成到另一个文件中的javascript中。如何在javascript中传递变量以在php中进行计算

这是我的javascript代码:

 $("#upload").on("click", function(){
    var csv = $('#csv');
    var csvFile = csv[0].files[0];
    var ext = csv.val().split(".").pop().toLowerCase();

    if($.inArray(ext, ["csv"]) === -1){
        alert('upload csv');
        return false;
    }
    if(csvFile != undefined){
        reader = new FileReader();
        reader.onload = function(e){

            csvResult = e.target.result.split(/\r|\n|\r\n/);
            
            var temp=[];
            for(i=0;i< csvResult.length; i++){
                if(csvResult[i] != "" && csvResult[i] != null){
                var data = csvResult[i].split(",");
                var rssi = data[0];
                var distance = data[1];
                var rssisample = 8;
                    if(distance == 1){
                      //need to insert calculation method from php



                        temp.push(rssi);
                    }   

                }
            }
$(“#上传”)。在(“单击”,函数(){
var csv=$(“#csv”);
var csvFile=csv[0]。文件[0];
var ext=csv.val().split(“.”.pop().toLowerCase();
如果($.inArray(ext,[“csv”])=-1){
警报(“上传csv”);
返回false;
}
if(csvFile!=未定义){
reader=newfilereader();
reader.onload=函数(e){
csvResult=e.target.result.split(/\r\n\r\n/);
var-temp=[];
对于(i=0;i
我有一个php文件名myphpfile.php。所以,我想使用javascript中的变量和值在php文件中执行计算并返回到javascript。请在这方面帮助我

这是我的php文件的一部分。例如:myphpfile.php

    <?php

// $arrTimeRSSI will read from javascript before perform this calculation


//calculate mean X using array_sum() method
$avgRSSI = array_sum($arrTimeRSSI)/($num_of_elements); 

function StandardDeviation($arrTimeRSSI){
    global $num_of_elements;
    global $avgRSSI;

    $variance = 0.0;
   
    foreach($arrTimeRSSI as $x){
        //sum of squares of difference between all numbers and mean X
        $variance += pow(($x - $avgRSSI), 2);
       
    }
    $newElements = $num_of_elements - 1;
    return (float)sqrt($variance/$newElements); 

} ?>


感谢advanced。

这并不是那么简单,因为
PHP
是在服务器上执行的,而
JavaScript
是由客户端执行的。您必须使用ajax将带有数据的请求发送到PHP脚本(服务器)并将响应返回到客户端

这是您的
JavaScript
的一个示例:

$(“#上传”)。在(“单击”,函数(){
var csv=$(“#csv”);
var csvFile=csv[0]。文件[0];
var ext=csv.val().split(“.”.pop().toLowerCase();
如果($.inArray(ext,[“csv”])=-1){
警报(“上传csv”);
返回false;
}
if(csvFile!=未定义){
reader=newfilereader();
reader.onload=函数(e){
csvResult=e.target.result.split(/\r\n\r\n/);
var-temp=[];
对于(i=0;i
这就是位于
/path/to/phpfile.PHP
PHP文件的外观:

//在此处进行计算并进行回显
echo intval($_POST['number1'])*intval($_POST['number2']);
另一种方法是制作一个php文件并将javascript嵌入其中。 但此解决方案不允许您将数据从javascript传输到php。因为php函数在服务器上执行,javascript(以及计算部分)随后发送到客户端。如以下示例:


$(“#上传”)。在(“单击”,函数(){
var csv=$(“#csv”);
var csvFile=csv[0]。文件[0];
var ext=csv.val().split(“.”.pop().toLowerCase();
如果($.inArray(ext,[“csv”])=-1){
警报(“上传csv”);
返回false;
}
if(csvFile!=未定义){
reader=newfilereader();
reader.onload=函数(e){
csvResult=e.target.result.split(/\r\n\r\n/);
var-temp=[];
对于(i=0;i
这可以通过创建formdata并将其传递给php文件来完成,该文件返回值。 根据我的经验,最好传递json值并从php文件返回它们。 javascript函数:

function example(){
  var form_data = new FormData();
  form_data.append("Variable1ToPass","test1");
  form_data.append("Variable2ToPass","test2");
  $.ajax({
    url: '/ThePhpFileYourReferTo.php',
    type: 'POST',
    dataType: 'json',
    cache: false,
    async: false,
    data: form_data,
    contentType: false,
    processData: false,
    error: function(ReturnData){
      //here do the error handling
      console.log(ReturnData);
      return;
    },
    success: function(ReturnData) {
      console.log(ReturnData.ResultOfCalculation);
      return;
    }
  });
}
在php文件(HPFileYourReferto.php)中:


你需要使用ajax。有很多这样的例子。你已经用ajax标记了它,所以我们假设你了解ajax,希望如此?如果是,那么你的确切问题是什么?这不是一个免费的“编写我的代码”服务,也不是一个教程网站。如果你需要ajax教程,网上已经有数百个了。我们将帮助您解决代码中的一个特定编程问题(如果您有)。您尝试了什么?您到底遇到了什么问题?是否需要使用ajax类型的POST?但我的php文件不包含method POST。它仍然可以应用?“我的php文件不包含method POST”…这意味着什么?PHP可以轻松处理POST请求,如果您编写代码来实现这一点的话。如果您已经编写了PHP代码,那么您应该向我们展示PHP代码以确保其清晰性。然后,我们可以确切地看到需要进行哪些修改(如果有)。我的意思是一个直接的PHP脚本。我已经用我的PHP文件更新了我的问题。非常感谢您的帮助dvice.
processData:false,contentType:false在这里不需要,因为
$DataToReturn = [];
$DataToReturn['SubmittedValue'] = $_POST;
$Variable2ToPass = $_POST['Variable2ToPass'];
$Variable2ToPass = $_POST['Variable2ToPass'];
//here do the calculation and write in the return variable
$DataToReturn['ResultOfCalculation'] = "OK DONE";
header('Content-type: application/json');
echo json_encode($DataToReturn);