在Javascript中使用PHP文件
我有一个PHP文件包含一些计算。现在,我想将计算集成到另一个文件中的javascript中。如何在javascript中传递变量以在php中进行计算 这是我的javascript代码:在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
$("#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);