首頁  >  問答  >  主體

傳遞參數給伺服器端的PHP檔案中的特定函數(從JS),然後將結果傳回給呼叫該函數的JS函數

基本上我正在做的是創建一個圖形計算器(使用 BokehJS),該計算器目前透過 html 取得一些輸入,然後 javascript 讀取資料並進行計算,然後輸出結果圖形。

問題是我們不希望使用者能夠看到所有的計算程式碼。 如果他們能看到 getter 和 setter 方法就很好了。

我需要它做的是:

  1. 取得 HTML 頁面上的使用者輸入
  2. 使用 JavaScript 讀取輸入(客戶端)
  3. 將讀取的輸入資料傳遞給 PHP(在 WordPress 伺服器上)進行計算
  4. #PHP 將結果資料傳回 JS
  5. JS(客戶端)處理要做什麼以及如何顯示資料

我們正在使用 WordPress 伺服器,目前我只是在本機上進行測試,因此允許測試和部署的方式會很棒。

目前這是我所擁有的:

myjavascript.js

function test_test(){

    const staticPNVals = getStaticPN(); //send this to php file as parameter to function
    const ret_array = [];
    
    //The below needs to be changed, idk how to do it
    const xmlhttp = new XMLHttpRequest();
    xmlhttp.onload = function() {
        const myObj = JSON.parse(this.responseText);
        ret_array = myObj;
    }
    xmlhttp.open("GET", "test.php");
    xmlhttp.send();

    console.log("ret_array is " + ret_array);
}

測試.php

<?php
function doStuff($myarr) {
    $myarr2 = array();
    for ($x = 0; $x <= 10; $x++) {
        array_push($myarr2, $myarr[$x]);
      }
    return $myarr2;
}

function doOtherStuff(){
    echo "Hello World";
}
?>

我希望擁有它,這樣我就可以在一個文件中擁有多個函數,我看到的大多數解決方案每個文件中只有 1 個函數。

mypage.html

<!-- Just a simple button to call the main Javascript function-->
<input type="button" value="Test function" onclick="test_test()">

所以基本上,總體問題是我如何更改 javascript 請求,使其能夠將參數傳遞給伺服器端 PHP,然後返回呼叫 js 函數

編輯:如果有一種方法可以使用伺服器端 javascript 而不是 PHP,那就更好了,因為腳本已經用 JS 編寫,除非必要,否則我不想用 PHP 重寫。

P粉593649715P粉593649715276 天前439

全部回覆(1)我來回復

  • P粉129168206

    P粉1291682062024-01-17 12:15:40

    我是如何解決類似問題的 JS

    let formData = new formData();
        formData.append("nameOfFunction","function you want to call");
        formData.append("variableA","some value");
    fetch("phpFileName.php"{body: formData,method: POST})
        .then((response)=>response.text)
        .then((data)=>{
            //do whatever
        })

    PHP

    $nameOfFunction = $_POST["nameOfFunction"];  // unsure past this point
    echo "