Maison  >  Questions et réponses  >  le corps du texte

Transmettez les paramètres à une fonction spécifique dans un fichier PHP côté serveur (depuis JS) et renvoyez le résultat à la fonction JS qui a appelé la fonction

En gros, ce que je fais, c'est créer une calculatrice graphique (en utilisant BokehJS) qui prend actuellement certaines entrées via HTML, puis javascript lit les données et effectue les calculs, puis génère le graphique résultant.

Le problème est que nous ne voulons pas que les utilisateurs puissent voir tout le code de calcul. Ce serait bien s'ils pouvaient voir les méthodes getter et setter.

Ce dont j'ai besoin, c'est :

  1. Obtenez les commentaires des utilisateurs sur la page HTML
  2. Lire l'entrée à l'aide de JavaScript (côté client)
  3. Transmettez les données d'entrée lues à PHP (sur le serveur WordPress) pour le calcul
  4. PHP renvoie les données de résultat à JS
  5. JS (côté client) gère quoi faire et comment afficher les données

Nous utilisons un serveur WordPress et actuellement je teste simplement sur ma machine locale, donc un moyen d'autoriser les tests et le déploiement serait formidable.

Actuellement, voici ce que j'ai :

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

J'aimerais l'avoir pour pouvoir avoir plusieurs fonctions dans un seul fichier, la plupart des solutions que je vois n'ont qu'une seule fonction par fichier.

mapage.html

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

Donc, fondamentalement, la question générale est de savoir comment modifier la requête javascript pour pouvoir transmettre les paramètres à PHP côté serveur, puis revenir à l'appel de la fonction js

EDIT : Ce serait bien s'il y avait un moyen d'utiliser du javascript côté serveur au lieu de PHP, car le script est déjà écrit en JS et je ne veux pas le réécrire en PHP sauf si nécessaire.

P粉593649715P粉593649715276 Il y a quelques jours438

répondre à tous(1)je répondrai

  • P粉129168206

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

    Comment j'ai résolu un problème similaire 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 "