Bonsoir,

Lors d'un cour symfony sur grafikart, j'ai fini la première partie du cour pour la création d'un panier et je me retrouve avec un bug improbable.

Lorsque j'ajoute des produit dans le panier tous fonctionne correctement, une fois dans le panier on peu changer la quantité du produit ajouté grâce à un select.

Le bug "Improbable" ce trouve ici, le formulaire ne se met pas dans le premier produit du tableau.

{% for produit in produits %}

<tr>
    <form action="{{ path('ecommerce_ajouter', {id: produit.id}) }}" method="get">
        <td>{{ produit.nom }}</td>
        <td>
            <select name="qte" class="span1" onChange="this.form.submit()">
                {% for i in 1..10 %}
                    <option value="{{ i }}" {% if i == panier[produit.id] %} selected="selected" {% endif %}>{{ i }}</option>
                {% endfor %}
            </select>&nbsp;
            <a href="{{ path('ecommerce_supprimer', {id: produit.id}) }}"><i class="icon-trash"></i></a>
        </td>
        <td>{{ produit.prix }}€</td>
        <td>{{ produit.prix * panier[produit.id] }}€</td>
    </form>
</tr>

{% endfor %}

et voila le résultat dans l'inspecteur d'élément:

<tr>

      <td>Tomate</td>
      <td>
          <select name="qte" class="span1" onchange="this.form.submit()">
              <option value="1">1</option>
              <option value="2">2</option>
              <option value="3">3</option>
              <option value="4">4</option>
              <option value="5">5</option>
              <option value="6" selected="selected">6</option>
              <option value="7">7</option>
              <option value="8">8</option>
              <option value="9">9</option>
              <option value="10">10</option>
          </select>&nbsp;
          <a href="/Symfony/web/app_dev.php/supprimer/88"><i class="icon-trash"></i></a>
      </td>
      <td>2.78€</td>
      <td>16.68€</td>

  </tr>

  <tr>
      <form action="/Symfony/web/app_dev.php/ajouter/89" method="get"></form>
      <td>Carotte</td>
      <td>
          <select name="qte" class="span1" onchange="this.form.submit()">
              <option value="1">1</option>
              <option value="2">2</option>
              <option value="3">3</option>
              <option value="4">4</option>
              <option value="5">5</option>
              <option value="6">6</option>
              <option value="7">7</option>
              <option value="8">8</option>
              <option value="9" selected="selected">9</option>
              <option value="10">10</option>
          </select>&nbsp;
          <a href="/Symfony/web/app_dev.php/supprimer/89"><i class="icon-trash"></i></a>
      </td>
      <td>1.99€</td>
      <td>17.91€</td>

  </tr>

4 réponses


Salut,

je ne suis pas sur à 100% de ce que je vais te proposer mais voilà mon idée:
Un array commence à 0 donc pour moi tu dois modifier ton {% for i in 1..10 %} par {% for i in 0..10 %}

non le {% for i in 1..10 %} concerne le select, pour qu'il commence à 1, le form est dans celui ci {% for produit in produits %}

Bonjour Jonathan,

histoire d'être sur concernant le contenu généré par Twig pour ta vue, ça donne quoi si tu regardes le code source de la page et pas l'inspecteur d'élément ?

ah oui je n'y est pas pensé, et j'ai vu ou est le soucie
j'ai un <form> qui englobe le tous, je l'ai viré et c'est bon :)