IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Portage de Ruby vers PHP


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut [AJAX] Portage de Ruby vers PHP
    Bonjour a tous ,
    je suis actuellement débutant en ajax, et je suis viens d'installer 2 librairies:
    prototype-1.3.1 et scriptaculous-js-1.5.1

    afin de pouvoir bénéficier de ceci:http://demo.script.aculo.us/shop

    la source ce ce script est disponible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    # view
    <div style="margin-bottom:20px;height:120px;">
    <% for product in @products %>
      <%= image_tag "/images/products/product#{product.id}",
            :id => "product_#{product.id}",
            :alt => product.title, 
            :class => "products"  %>
      <%= draggable_element "product_#{product.id}", :revert => true %>
    <% end %>
    </div>
     
    <h2>Your cart:</h2>
     
    <div id="cart" class="cart" style="clear:left; height:132px;margin-top:10px;">
      <div id="wastebin">
        Drop items here to remove them from the cart.
      </div>
      <div id="items">
        <%= render :partial => "cart" %>
      </div>
      <div style="clear:both;"></div>
    </div>
     
    <div style="height:40px;padding-top:10px;">
    <p id="indicator" style="display:none;margin-top:0px;">
      <%= image_tag "indicator.gif" %> Updating cart...
    </p>
    </div>
     
    <%= drop_receiving_element "cart", 
          :update => "items", :url => { :action => "add" },
          :accept => "products", :hoverclass => "cart-active",
          :loading => "Element.show('indicator')",
          :complete => "Element.hide('indicator')" %>
     
    <%= drop_receiving_element "wastebin", 
          :update => "items", :url => { :action => "remove" },
          :accept => "cart-items", :hoverclass => "wastebin-active",
          :before => "Element.hide(element)",
          :loading => "Element.show('indicator')",
          :complete => "Element.hide('indicator')" %>
     
    # controller
    class ShopController < ApplicationController
     
      def index
        session[:cart] ||= {}
        @products = Product.find(:all)
      end
     
      def add
        product_id = params[:id].split("_")[1]
     
        session[:cart][product_id] = 
          session[:cart].include?(product_id) ?  
          session[:cart][product_id]+1 : 1
     
        render :partial => 'cart'
      end
     
      def remove
        product_id = params[:id].split("_")[1]
     
        if session[:cart][product_id] > 1 
          session[:cart][product_id] = session[:cart][product_id]-1
        else
          session[:cart].delete(product_id)
        end
     
        render :partial => 'cart'
      end
     
    end
     
     
    # _cart.rhtml partial
    <% session[:cart].each do |product,quantity| %>
    <div>
      <% quantity.times do |i| %>
        <%= image_tag "/images/products/product#{product}", 
              :class => "cart-items", 
              :id => "item_#{product}_#{i}", 
              :style => "position:relative;" %>
        <%= draggable_element "item_#{product}_#{i}", :revert => true %>
      <% end %>
      <span class="title">
        <%= Product.find(product).title + " (#{quantity})" %>
      </span>
    </div>
    <% end %>
    <%= "Here's your shopping cart." if session[:cart].empty? %>
    mais je ne sais pas ou la placer et je n'arrive pas à faire fonctionner ce programme.

    je suis dans une page HTML ou j'appel bien mes 2 librairies:
    <script src="/javascripts/prototype.js" type="text/javascript"></script>
    <script src="/javascripts/scriptaculous.js" type="text/javascript"></script>

    comment appeller le programme et comment gérer le code avec les balises <%??


    merci d'avance de votre aide.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    C'est du Ruby, un langage de programmation. C'est lui qui va interpréter les <%. Forcément, si ton serveur ne comprend pas le Ruby, ça risque pas de marcher. La première chose à faire, c'est installer Ruby sur ton serveur (si tu peux le faire, bien entendu).

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    je vais utiliser PHP pour ce transformer ce code ruby, savez vous comment je pourrais m'y prendre? en utilisant les sessions?

    merci d'avance

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Aculo ne fournit des librairies Javascript (le plus utile), et accesoirement des éléments de Ruby pour en faciliter l'utilisation. Si tu ne peux/veux pas utiliser Ruby, il faut reprogrammer la partie serveur en Php, mais ça ne devrait pas être trop difficile... Essaie de regarder la doc d'Aculo et les exemples de drag/drop présents sur le site web de démo, ça doit se faire assez bien.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    j'ai essayé, et à vrai dire je ne sais pas trop comment m'y prendre et comment commencer

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    s'attaquer à des libraires pour commencer ...

    mieux vaut directementfaire ses fonctions de drag & drop ...
    il y en a d'ailleurs une que je viens de remettre dans le forum javascript ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    merci pour votre aide, j'ai complètement modifier mon script mais j'ai encore un probleme:
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    session_start(); // Une fois par script
    if (isset($_GET['fich']))
    {
            $prod=$_GET['fich'];
            $url="<img src='" . $prod . "' width=50 height=50>";
            $nom=strtolower(substr($prod, strrpos($prod, '/')));
            $ancu=$_SESSION["im2"];
            $ancn=$_SESSION["no2"]; 
            $_SESSION["im2"] = $ancu . $url;
            $_SESSION["no2"] = $ancn . $nom;
    }
     
    ?>
    <html>
    <head>
    <script src="../../lib/prototype.js" type="text/javascript"></script>
    <script src="../../src/scriptaculous.js" type="text/javascript"></script>
    <script src="../../src/unittest.js" type="text/javascript"></script>
    </head>
     
    <body>
    <center>
    Contenu actuel du panier:<br>
    <div id="cart" class="cart"  style="text-align:center; height:auto;width:70%;padding:10px;background-color:#d5ddd2" >
    <?php
    echo $_SESSION["im2"];
    echo "<br>Deplacez un objet ici pour l'ajouter au panier";
    ?> 
    </div>
     
    <br><br><br>
     
    Liste des produits:<br>
    <?php
    $folder = "./images/products/";
    $dossier = opendir($folder);
    while ($Fichier = readdir($dossier)) {
      if ($Fichier != "." && $Fichier != "..") {
        $nomFichier = $folder."".$Fichier;
        //Affichage de l'image
        echo "<img alt='$Fichier' id='$Fichier' src='$nomFichier' >"
     	 . "<script type='text/javascript'>new Draggable('$Fichier', {revert:true})</script>&nbsp;";
     
      }
    }
    //Code javascript
    echo "<script type='text/javascript'>Droppables.add('cart', {onDrop:function(element,dropon){location.replace('dragdrop5_test.php?fich=$nomFichier');}})"
    	. "</script>";
     
    closedir($dossier);
    ?>
    </center>
     
    </body>
    </html>
    le drag and drop marche mais s'applique à un seul produit, si je met un autre produit dans mon dossier, il va m'ajouter au panier le dernier produit du dossier quel que soit le produit.

    comment puis-je faire pour ajouter le bon produit au panier?

    merci d'avance

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    passer element en variable globale ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    comment ça?

  10. #10
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 497
    Points : 194
    Points
    194
    Par défaut
    C'est super terrible comme code, aie, aie !

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    tu veux dire que c'est dur?

    je pense qu'il y a que le javascript pour pouvoir faire que ça marche non?

  12. #12
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 497
    Points : 194
    Points
    194
    Par défaut
    non sa donne envie d'apprendre le comment du pourquoi, alors je tire la langue en attendant des tutos sur l'ajax en [fr].

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Il existe un portage complet en PHP du script Ruby que tu mentionnes, expliqué pas-à-pas, sur le site de symfony:

    http://www.symfony-project.com/tutorial/symfony_ajax.html

    Ca devrait pouvoir t'éclairer

  14. #14
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Citation Envoyé par artotal
    non sa donne envie d'apprendre le comment du pourquoi, alors je tire la langue en attendant des tutos sur l'ajax en [fr].
    http://siddh.developpez.com/articles/ajax/
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Points : 22
    Points
    22
    Par défaut Une autre version du CART script.aculo.us RUBy vers PHP
    Bonjour..
    A la recherche comme vous tous d'un portage de ce panier vers php..
    J'ai renoncé à partir de la version symfony, et en poursuivant mes recherches,
    j'ai déniché cette adresse :
    http://www.ajaxlessons.com/2006/02/1...-scriptaculous
    C'est clair, concis et facilement adaptable.
    Je cherchais un truc 'rigolo' pour générer des factures à partir d'une liste de Bon de livraisons. C pile poil.

    Voilà.
    Bon dev à tous.
    Gérald

Discussions similaires

  1. code ruby vers php
    Par world_prg dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2017, 11h55
  2. Requête AJAX vers PHP, back-end JSON et résultat
    Par wenijah dans le forum jQuery
    Réponses: 2
    Dernier message: 23/04/2012, 14h19
  3. [AJAX] Requete Ajax Etape par etape vers PHP
    Par franquis dans le forum AJAX
    Réponses: 0
    Dernier message: 20/07/2011, 19h59
  4. portage Coldfusion vers PHP pour Formulaire Flash
    Par Snipouse dans le forum Langage
    Réponses: 0
    Dernier message: 13/03/2009, 17h27
  5. Récupération de donnée formulaire AJAX vers PHP
    Par Starbug dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/10/2007, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo