switch

ciao,

in questo switch, nel case 'update'

<?php

switch ($action) {
   case 'add' :
      addToCart();
      break;
   case 'update' :
      updateCart();
            break;
   case 'delete' :
      deleteFromCart();
      break;
   case 'view' :
}

c'è la chiamata alla funzione updateCart();

posso aggiungere una chiamata a un'altra funzione oltre a quella presente?

cioè qualcosa di simile:

case 'update' :
      updateCart();
               query();

però così non funziona, nel senso che dato che invio delle variabili via POST, updateCart() se le prende tutte e mi lascia query() senza nulla...

c'è un modo?

grazie

inviato 10 anni fa
iTek
iTek
1
X 0 X

 :)  ciao

potresti crearti delle variabili con i dati che ti servono in entrambe le funzioni e passarle come parametri ad entrambe.

per esempio:

case 'update':
                      // controlli i valori che ti passa l'utente e/o che ti arrivano dal POST
                      $var1=trim($_POST['var1']);
                      $var2=trim($_POST['var2']);
                       
                       // fai la prima query
                       updateCart($var1,$var2);
                       // fai la seconda query
                       query($var1,$var2);

Se sono tanti i dati che ti servono nelle funzioni, ti conviene "travasare" il contenuto di $_POST in un array che puoi passare come unico parametro:

case 'update':
                      // controlli i valori che ti passa l'utente e/o che ti arrivano dal POST
                      foreach ($_POST as $nome=>$valore)
                                         $dati[$nome]=trim($valore);

spero ti torni utile!   O0

ciao

ro

risposto 10 anni fa
ro679
X 0 X

PS: a scanso di equivoci, chiudi sempre il codice tra le parentesi graffe per ogni "case" e prima di chiudere ciascuna metti il comando "break".

case 'update':
                            {
                            // codice
                            break;
                            }

Che magari il problema non fosse quello!

 ;D

ro

risposto 10 anni fa
ro679
X 0 X

ciao,

grazie per la risposta.

non riesco a capire.. >:(  non funziona.

allora, ho questo switch con la chiamata alle 2 funzioni.

le $var che devo passare a query() sono solo 2: $_POST['id_area'] e $_POST['id_pag'] e servono solo alla funzione query(). per updateCart() ce ne sono altre.

<?php case 'update' :{

     $id_area=trim($_POST['id_area']);
     $id_pag=trim($_POST['id_pag']);
      updateCart();
    query($id_area,$id_pag);}
         break; ?>

ma poi nella funzione query() come ricevo le variabili?

ti posto il codice:

<?php    function query($id_area,$id_pag)
{

  if (isset($id_area)  && isset($id_apg))
    {
        
        $query = mysql_query("SELECT prezzo FROM tbl_shipping WHERE id_area = ".$id_area." AND id_pag = ".$id_pag." AND id_abb ='0'")or die(mysql_error());
        $row = dbFetchAssoc($query);
        extract($row);
        return $prezzo;

    }
    return "no";
} ?>

ma così mi da errore di Warning: Missing argument 1  e 2 for query()  alla dichiarazione della funzione:

function query($id_area,$id_pag)....

io con questa cosa sto impazzendo...sono 3 giorni che cerco di risolvere :buck:

risposto 10 anni fa
iTek
iTek
1
X 0 X

no ok, per quel che riguarda quel problema iniziale era colpa degli headers nella parte finale della funzione updateCart()

 :D

risposto 10 anni fa
iTek
iTek
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda