2009-03-19 8 views
0

J'utilise JavaScript pour stocker des valeurs dans une pile. Le problème est que la valeur de la pile reste active jusqu'à ce que la page soit actualisée. Lorsque la page est actualisée, la valeur de la valeur de la pile est définie sur "Non défini". Est-il préférable de mettre en place un lieu pour stocker de manière permanente les valeurs de la pile?JavaScript et une pile

Ensuite, même si la page est actualisée, l'ancienne valeur de la pile devrait pouvoir être récupérée.

Comment puis-je implémenter l'extrait de pile ci-dessous dans un script PHP?

var arr = new Array(); 
    var pushed = arr.push(id); // For pushing into the stack 
    arr.splice(0,arr.length); // For deleting the stack 

Comment faire pour se référer aux valeurs PHP stockées en JavaScript?

+0

Les trois réponses qui ont été postées jusqu'à présent commencent par mentionner le fait que votre question n'est pas vraiment claire. Pourriez-vous s'il vous plaît essayer de reformuler votre question et résumer le problème que vous avez? Cela aiderait certainement à obtenir une meilleure réponse. –

Répondre

3

résoudre ceci est de ne pas actualiser la page, mais recharger son corps, une forme ou un élément div en utilisant Ajax. jQuery rend ce en particulier simple:

$('body').load(url); 

De cette façon, vous pouvez avoir la persistance des valeurs de script entre les mises à jour.

0

Pas tout à fait sûr de ce que vous demandez
Si vous souhaitez implémenter l'extrait à l'aide d'un objet, essayez quelque chose comme ceci:

var obj = {}; 
obj[key] = id; // to add 
obj = {};  // to remove all items 
del obj[key]; // to remove 1 item 
4

Si j'interprète votre question, vous demandez si JavaScript les objets peuvent persister au-delà d'une actualisation de la page?

Malheureusement, lorsqu'une nouvelle page est chargée, tous les objets JavaScript sont perdus. Ils ne survivent pas à une actualisation de page.

Je suggère d'utiliser des cookies. Je ne suis pas assez dédié pour écrire le code pour vous maintenant, mais généralement:

Lorsque vous appuyez sur/pop de la pile, persistez dans la pile à un cookie enregistré sur la machine du client. Lorsque la page est chargée pour la première fois (ou rafraîchie dans votre exemple), recherchez ce cookie et écrivez la pile persistante dans votre objet JavaScript.

Jetez un oeil à ces pages pour aider à persister à cookies de JavaScript:

  1. David Winterbottom's links
  2. Cookies
  3. JavaScript Cookies
1

En supposant que vous voulez certaines valeurs dans les variables JavaScript pour persister b Entre les chargements de pages, vous pouvez soit faire ce que Damovisa a suggéré ou simplement utiliser un champ caché pour stocker vos valeurs de pile sous une forme quelconque. Peut-être une chaîne délimitée par des virgules ou quelque chose comme ça.

L'avantage est évident. Votre programme ne dépendra pas du navigateur du client pour avoir activé les cookies. En alternative, si cela est possible, vous pouvez conserver votre pile dans une variable côté serveur, puis l'insérer dynamiquement dans le code JavaScript lors du rendu de la page.

Il vous sera très utile si vous pouvez nous donner plus de détails sur votre programme.

Si vous souhaitez que les valeurs des variables PHP soient reflétées dans votre code JavaScript, intégrez des balises PHP dans votre code JavaScript.

Par exemple:.

<script> 
    var str = "<?php echo $my_str; ?>"; 
    //Do something with str 
</script> 

Assurez-vous d'inclure les guillemets ("), sinon la valeur de la chaîne sera considérée comme un jeton par JavaScript et peut jeter une erreur

1

Vous pouvez sérialiser l'objet et le poster à la page suivante avec JavaScript dans l'URL et l'analyser sur la page de l'URL.Ce n'est probablement pas la meilleure façon de le faire, mais puisque vous demandez, je suppose que vous ne pouvez pas utiliser une technologie de backend pour stocker des données de manière permanente

Questions connexes