Optional shopping cart [closed]

-1

Positive added / Negative removed

([1] => 3 [6] => -2 ) 

Next the customer can change all the settings of the snack contains a standard amount (recipe)

it can remove 2x and can add lettuce 1x 2x 3x

In case he added 3x and withdrew 2x

Then the system has to do a substitution 1 steak for 1 lettuce and an additional 1 lettuce , then the system has to have extra / withdrawal / replacement ... in my view it will always happen or replace and add or replace and remove /// or just subistitui

remembering that everything dynamic can happen this possibilities several times

-+ Bacon por Alfance = R1,00
 + Alfance = R$ 0,50
-+ 2x Bacon por Alfance = R2,00
 + Alfance = R$ 0,50

Here's a demo link of how the client would do what he can do ...

Those that have already been marked and the standard recipe for the product ... that can also be changed ...

I could do it to

**o problema esta aki como interpretar esse array**    
(
    [1] => 3  // [id_produto] => quantidade
    [6] => -2 // [id_produto] => quantidade
    )
fazer-lo virar 
    -+ 2x Bacon por Alfance = R2,00
     + Alfance = R$ 0,50


**as os possivel acontecimentos para esse array** 

    -+ 2x Bacon por Alfance = R2,00
     + Alfance = R$ 0,50

    -+ Bacon por Alfance = R1,00
     - Alfance = R$ 0,50

    -+ 2x Bacon por Alfance = R1,00

link I put the system online

    
asked by anonymous 17.09.2014 / 12:13

2 answers

1

Your problem starts at the client and is transported to the server. To start solving, change checkboxes by select and create a request form

<form name="pedido">
<label >Bife (adicione ou retire quantidade)</label>
<select name="bife">
<option value="-3">retirar 3 porções</option>
<option value="-2">retirar 2 porções</option>
<option value="-1">retirar 1 porções</option>
<option value="0">Não quero este ingrediente</option>
<option value="1">acrescentar 1 porções</option>
<option value="2">acrescentar 2 porções</option>
<option value="3">acrescentar 3 porções</option>
</select>

<label >Alface (adicione ou retire quantidade)</label>
<select name="alface">
<option value="-3">retirar 3 porções</option>
<option value="-2">retirar 2 porções</option>
<option value="-1">retirar 1 porções</option>
<option value="0">Não quero este ingrediente</option>
<option value="1">acrescentar 3 porções</option>
<option value="2">acrescentar 3 porções</option>
<option value="3">acrescentar 3 porções</option>
</select>

<label >Bacon (adicione ou retire quantidade)</label>
<select name="bacon">
<option value="-3">retirar 3 porções</option>
<option value="-2">retirar 2 porções</option>
<option value="-1">retirar 1 porções</option>
<option value="0">Não quero este ingrediente</option>
<option value="1">acrescentar 3 porções</option>
<option value="2">acrescentar 3 porções</option>
<option value="3">acrescentar 3 porções</option>
</select>
</form>

to receive something like this on the server:

$_POST["bife"] = 1;
$_POST["bacon"] = -2;
$_POST["alface"] = 0;


$receita["bife"] = 1;
$receita["bacon"] = 3;
$receita["alface"] = 5;

$preço["bife"] = 10;
$preço["bacon"] = 2;
$preço["alface"] = 1;




$pedido["bife"] = ($_POST["bife"]) ? ($receita["bife"]+$_POST["bife"]) * $preço["bife"]   : 0;
$pedido["bacon"] = ($_POST["bacon"]) ? ($receita["bacon"]+$_POST["bacon"]) * $preço["bacon"] : 0 ;
$pedido["alface"] = ($_POST["alface"]) ? ($receita["alface"]+$_POST["alface"]) * $preço["alface"] : 0;

$valor-do-pedido = $pedido["bife"] + $pedido["bacon"] + $pedido["alface"];

I think so, it makes the request to the user less confusing as it clearly informs what it expects it to do, and makes the request easier to process.

Of course this code is extremely simple.

    
17.09.2014 / 13:13
0

I'm not sure how your project is, or the reason for using checkbox among other models, I also do not know if it's easy to change or not.

But I took the liberty of doing a code that I hosted in the JSFiddle of how you could do this project.

Link to the code

Link to code with PHP

Here is an example of how you can receive the data sent:

<?php 

   if (isset($_POST['produto'])){
      $pedido = '';

      foreach ($_POST['produto'] as $id => $dados) {
         if ($dados['qtd'] <= 0) continue;
         $pedido .= "ID: {$id} <br>QTD: {$dados['qtd']}<br><br>";
      }
      echo $pedido.'<hr><br>';
   }

?>

Then just search the bank for the item ID for the value, multiply for the quantity reported and so on.

    
17.09.2014 / 15:45