[PHP] Buongiorno!!! potrei ricevere una risposta anch'io o no?

  • Creatore Discussione Creatore Discussione ANDREA20
  • Data di inizio Data di inizio
Stato
Chiusa ad ulteriori risposte.

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
28
Probabilmente non arriva nulla qui -> $_POST['quantita']
Prova a fare così prima del foreach():
var_dump($_POST['quantita'] );
die();
Vedi cosa ti da..
 
Esattamente come pensavo..
questo vuol dire che dentro $POST[quantita] non arriva nulla..
 
Esattamente come pensavo..
questo vuol dire che dentro $POST[quantita] non arriva nulla..

ok va bene quindi in questo caso ti allego il codice

In poche parole sto creando un sconto e invio dell'ordine via email al cliente e al ristorante

Codice:
<?php
@session_start();
@require('mysql.php');
@require('config.php');
@require('funzioni.php');

$carrello = $_SESSION['carrello'];
if(@isset($_GET['action']))
{
  $action = $_GET['action'];
 
  switch ($action)
  {
    case 'aggiungi':
    if ($carrello)
    {
      $carrello .= ','.$_GET['id'];
    }else{
      $carrello = $_GET['id'];
    }
    break;

    case 'cancella':
    if ($carrello)
    {
      $prodotti = @explode(',',$carrello);
      $acquisto = '';
      foreach ($prodotti as $prodotto)
      {
        if ($_GET['id'] != $prodotto)
        {
          if ($acquisto != '')
          {
            $acquisto .= ','.$prodotto;
          }else{
            $acquisto = $prodotto;
          }
        }
      }
      $carrello = $acquisto;
    }
    break;

    case 'aggiorna':
    if ($carrello)
    {
      $acquisto = '';
      foreach ($_POST as $key=>$value)
      {
        if (@stristr($key,'quantita'))
        {
          $id = @str_replace('quantita','',$key);
          $prodotti = ($acquisto != '') ?
          @explode(',',$acquisto) : @explode(',',$carrello);
          $acquisto = '';

          foreach ($prodotti as $prodotto)
          {
            if ($id != $prodotto)
            {
              if ($acquisto != '')
              {
                $acquisto .= ','.$prodotto;
              }else{
                $acquisto = $prodotto;
              }
            }
          }
 
          for ($i=1;$i<=$value;$i++)
          {
            if ($acquisto != '')
            {
              $acquisto .= ','.$id;
            }else{
              $acquisto = $id;
            }
          }
        }
      }
    }
    $carrello = $acquisto;
    break;
  }
}

$_SESSION['carrello'] = $carrello;
?>

<html>
<head>
<title>Un carrello della spesa con PHP</title>
</head>
<body>
<h1>Carrello in PHP</h1>

<?php
echo usaCarrello();
?>

<h1>Controlla il numero dei prodotti</h1>

<?php
echo mostraCarrello();
?>

<?php
//dati di connessione
$nome=$_POST['nome'];
$email=$_POST['email'];
//...
$tot_importo=20;
//leggi le pietanze ordinate
var_dump($_POST['importo totale']);
die();
foreach($_POST['quantita'] as  $result => $quantita){
    $ris=mysqli_query($connessione,"SELECT menu FROM menu WHERE id =$id");
    //prepari rigo dell'ordine
    $riga=mysqli_fetch_assoc($ris);
    $rigo_ordine[]="ordinate n. $quantita $tipo importo parziale".$quantita*$riga[menu];
    $tot_importo+=$quantita*$riga[menu];
}
//qui conviene verificare che $tot_importo > 0, perchè se 0 non ha ordinato nulla
//qui prepari il testo da inviare per email
if($tot_importo<36){
    $importo= "importo totale: $importo_totale &#8364";
}else{
    $sconto=0.2;
    $importo="importo: $importo_totale &#8364;<br>";
    $importo.="sconto: ".(int)($sconto*100)." %<br>";
    $importo_totale=$importo_totale*(1-$sconto);
    $importo.="importo totale: ".number_format($importo_totale, 2, ',',',');
}
$testo="il sig. $nome ha ordinato:<br>";
foreach($rigo_ordine as $cosa){
    $testo.=$cosa;
}
$testo.=$cosa.$importo."cordiali saluti";//testo pronto per l'invio
//e qui fai l'invio....
?>


<a href="index.php">Torna allo shop</a><br>
</body>
</html>
 
Ultima modifica:
Il problema purtroppo non è in questo script pare. Nel senso che il tuo form invia dei dati tramite post ?. A quanto pare questi dati non arrivano in questa pagina..
In più il foreach si usa per scorrere un array, hai verificato che il primo valore dopo la parentesi del foreach lo sia?


Inviato dal mio iPhone utilizzando Tapatalk
 
Chiudo!
I Titoli devono essere descrittivi del problema in conformità al regolamento del forum e non provocatori o senza senso, qui nessuno è a tua disposizione
 
  • Like
Reactions: filomeni
Stato
Chiusa ad ulteriori risposte.

Discussioni simili