Heim  >  Fragen und Antworten  >  Hauptteil

Übergeben Sie Parameter an eine bestimmte Funktion in einer PHP-Datei auf der Serverseite (von JS) und geben Sie das Ergebnis an die JS-Funktion zurück, die die Funktion aufgerufen hat

Im Grunde erstelle ich einen Grafikrechner (mit BokehJS), der derzeit einige Eingaben über HTML entgegennimmt, dann liest Javascript die Daten und führt die Berechnungen durch und gibt dann das resultierende Diagramm aus.

Das Problem besteht darin, dass wir nicht möchten, dass Benutzer den gesamten Berechnungscode sehen können. Es wäre schön, wenn sie die Getter- und Setter-Methoden sehen könnten.

Was ich tun muss, ist:

  1. Erhalten Sie Benutzereingaben auf der HTML-Seite
  2. Eingaben mit JavaScript lesen (clientseitig)
  3. Übergeben Sie die gelesenen Eingabedaten zur Berechnung an PHP (auf dem WordPress-Server)
  4. PHP sendet Ergebnisdaten zurück an JS
  5. JS (Clientseite) kümmert sich darum, was zu tun ist und wie die Daten angezeigt werden

Wir verwenden einen WordPress-Server und derzeit teste ich nur auf meinem lokalen Computer, daher wäre eine Möglichkeit, Tests und Bereitstellung zu ermöglichen, großartig.

Derzeit habe ich Folgendes:

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);
}

test.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";
}
?>

Ich hätte es gerne, damit ich mehrere Funktionen in einer Datei haben kann. Die meisten Lösungen, die ich sehe, haben nur eine Funktion pro Datei.

meine Seite.html

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

Die allgemeine Frage lautet also: Wie ändere ich die Javascript-Anfrage, um Parameter an serverseitiges PHP übergeben zu können, und kehre dann zum Aufruf der js-Funktion zurück

BEARBEITEN: Es wäre schön, wenn es eine Möglichkeit gäbe, serverseitiges Javascript anstelle von PHP zu verwenden, da das Skript bereits in JS geschrieben ist und ich es nicht in PHP umschreiben möchte, es sei denn, es ist notwendig.

P粉593649715P粉593649715276 Tage vor436

Antworte allen(1)Ich werde antworten

  • 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 "