9
votes

Valeurs de formulaire PHP en tant que variables JS dans la fonction de rappel

J'essaie de passer des valeurs de formulaire PHP dans une fonction JS à l'aide de mon code suivant - xxx pré>

pour obtenir quelque chose comme ça - p>

 mrp_data_callbacks.push( function(index, data) {
        data["<?php echo "htitle-" . $sequence ?>"] = "<?php echo $htitle ?>";
        return data;
    });


1 commentaires

Je suppose que ce n'est qu'une raison pour laquelle tout le monde expose son côté serveur avec des points d'extrémité de l'API reposant ... quelque chose comme Coreymaynard.com/blog/Creatting-A-Resful-api-with-php


4 Réponses :


8
votes

Ce serait fait avec Ajax ou Websocket, avec jQuery, vous pouvez avoir quelque chose comme:

JS: strong> p> xxx pré>

PHP: strong> p> xxx pré>

Utilisation de jQuery vous donne des fonctions telles que $. Ajax () code> , $ .post () code> , $. Obtenez () code> , ces deux fonctions sont des raccourcis. P>

Toutefois, si vous attendez un grand nombre d'utilisateurs travaillant sur les mêmes données avec des formulaires et que vous continuez à rebondir des données et retour à tous les utilisateurs qui vont Mettez beaucoup de charge sur le serveur. P>


sur l'autre côté Web Websocket fonctionne en ouvrant un canal de connexion entre le serveur et les utilisateurs, ce canal de connexion reste ouvert jusqu'à ce que l'utilisateur déconnecté, cela ne fait pas beaucoup de chargement sur le Serveur, je n'ai pas encore travaillé avec Websocket, mais j'ai lu des articles en couple et j'ai regardé peu de vidéos sur YouTube, que la plupart d'entre elles portaient sur la création d'applications de discussion en temps réel ou de jeux Web multi-utilisateurs. P>


4 commentaires

Bonjour merci pour la réflexion sur la réponse. Vous ne savez toujours pas comment appliquer cela à ma situation donnée?


Bonjour @ mygm26, je ne sais pas comment vous avez structuré votre HTML ou ce qui est stocké dans votre base de données ou ce qui est écrit dans vos fichiers PHP, je ne sais pas non plus de quoi essayez-vous exactement, tout ce que j'ai vu, c'est que vous poussez Valeurs peuplées avec PHP dans un tableau dans JavaScript, donc je ne peux pas avoir le même environnement exact que vous.


Merci pour votre temps, mais je ne suis toujours pas sûr comment appliquer ceci pour ma situation actuelle. J'ai mis à jour ma question avec plus de code (trouvé dans les liens) pour aider à préciser davantage. Fondamentalement, les fonctions de rappel sont déjà définies dans un autre script. Ma question est donc spécifiquement aux variables et au code mentionnées.


@ Mi-créativité Il vous manque une citation unique de fermeture ( $ (ceci) .Addclass ('errorormsg) ).



1
votes

Comme vous l'avez dit correctement, vous obtenez la valeur du champ de saisie uniquement une fois (il définira la valeur pour titlev et commentav lors de la première charge de la page) . Donc, si quelque chose est changé sous la forme de l'action de l'utilisateur, il ne sera pas là. Vous devez déplacer la partie du code qui obtient le titlev et commentav à l'intérieur des fonctions de rappel. Donc, il obtiendra toujours la valeur actuelle de l'entrée lorsque la fonction est appelée à la volée. Quelque chose comme ça (un peu amélioré) - xxx


4 commentaires

Merci pour la réponse. J'ai essayé votre code mais cela ne semble pas rendu des valeurs lors de la visualisation de mon site à l'aide d'outils de développement. C'est ce que je vois - varèche = "0"; mrp_data_callbacks.push (fonction (index, données) {var titlev = document.getelementByID ("MRP-Title-" + séquence). Données [" HTITLE- "+ Séquence] = Titrev; Données de retour;}); MRP_DATA_CALLBACK.PUSH (fonction (index (index, données) {var commotev = document.getElementByID (" Commentaire- "+ séquence). Données [" Commentaire- "+ séquence] = COMMENTEV; Données de retour;});


Comment utilisez-vous ces fonctions pour la valeur de sortie? Ces fonctions ne renvoient que la valeur, pas la sortie.


Y a-t-il un moyen d'envoyer un message privé? Le site n'est pas encore supposé être public mais je peux vous envoyer le lien afin que vous puissiez voir ce que je veux dire


Je ne pense pas qu'il y ait une telle façon, (même toutes les salles de discussion sont publiques ici). Mais vous pouvez me trouver dans Facebook / Skype avec le même nom et m'envoyer un message.



0
votes

Avez-vous essayé de générer tout le code JS avec PHP? Cela pourrait fonctionner:

<?php
$js  = "<script type='text/javascript'>";
$js += "var sequence = " . $sequence . ";";
$js += "mrp_data_callbacks.push(function(index, data) {";
$js += "    data[" . $key . "] = " . $value . ";";
$js += "    return data;";
$js += "});";
$js += "</script>";
echo $js;
?>


0 commentaires

0
votes

Un peu déroutant mais tout ce que je crois que vous devez faire, c'est d'obtenir les valeurs à l'aide de JavaScript au moment de la publication du formulaire. TAREQ Mahmood est correct.

Donc, donc ceci: xxx

devrait ressembler à ceci: xxx

Daniel


0 commentaires