在Javascript中使用PHP文件[关闭]
Posted
技术标签:
【中文标题】在Javascript中使用PHP文件[关闭]【英文标题】:Use PHP file in Javascript [closed] 【发布时间】:2021-02-02 05:42:36 【问题描述】:我有一个 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);
我有 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);
?>
【问题讨论】:
你需要使用ajax。有很多这样的例子。 你已经用 AJAX 标记了这个,所以我们假设你知道 AJAX,希望?如果是这样,那么您的确切问题/问题是什么?这不是免费的 write-my-code 服务,也不是教程网站。如果您需要 AJAX 教程,网上已经有数百个。如果您有代码中的特定编程问题,我们将帮助您解决。你试过什么?你到底卡在哪里了? 是否需要使用ajax类型的POST?但我的 php 文件不包含方法 post。还能申请吗? “我的 php 文件不包含方法 post”...这是什么意思? PHP 可以轻松地处理 POST 请求,如果您编写代码来实现它。为了清楚起见,您应该向我们展示 PHP 代码,如果您已经编写了它。然后我们可以确切地看到需要进行哪些修改(如果有的话)。 我的意思是一个直接的 php 脚本。我已经用我的 php 文件更新了我的问题。非常感谢您的建议。 【参考方案1】:这并不简单,因为PHP
在服务器上执行,JavaScript
由客户端执行。您必须使用 ajax 将带有数据的请求发送到 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)
$.ajax(
url: '/path/to/phpfile.php',
type: 'post',
// transmit your data
data: number1: '15', number2: '15',
success: function (response)
// handle the response
// response should contain 225 in this example
);
temp.push(rssi);
);
这就是PHP file
/path/to/phpfile.php
的样子:
// do your calculations here and echo it
echo intval($_POST['number1']) * intval($_POST['number2']);
另一种方法是制作一个 php 文件并将您的 javascript 嵌入其中。 但是此解决方案不允许您将数据从 javascript 传输到 php。因为 php 函数在服务器上执行,然后 javascript(带有计算的部分)被发送到客户端。像这个例子:
<?php
// declare your php function here
function calculate()
return;
?>
<script>
$("#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)
var calculation = <?php echo calculate(); ?>
temp.push(rssi);
);
</script>
【讨论】:
processData: false, contentType: false
在这里不应该是必需的,因为没有发送文件数据,只有两个数字。事实上,使用它们甚至可能会导致问题。【参考方案2】:
这可以通过创建一个表单数据并将其传递给它返回值的 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文件(ThePhpFileYourReferTo.php)中:
$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);
【讨论】:
以上是关于在Javascript中使用PHP文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 javascript 和 php 连接到 phpmyadmin 上的数据库
用于 Web 开发和设计的有用 Vim 插件(php、html、css、javascript)? [关闭]
在PHP文件中实现javascript时显示/隐藏功能不起作用[关闭]