Ir para conteúdo
Fórum Script Brasil
  • 0

[Ajuda Por Favor] Formulário de Email e Carrinho


khayro

Pergunta

tenho 3 duvidas.

bom, to mexendo com carrinho de compras, ai a unica forma de mandar os pedidos que eu encontrei, foi colocando os pedidos da session dentro de um textbox, segue o código

<input name="produtos" type="text" class="area" id="circuito" value="<?php print_r ($_SESSION['carrinho']); ?>" size="150"/>
e colocando aquele codigo ali, o pedido aparece assim: Array( [0] => Array ( [id] => 41057 [nome] => ZOLMICOL 20MG CREME 30G (CETOCONAZOL) [qtde] => 1 )) o que eu preciso é ID, NOME, QUANTIDADE, só que aparece esses espaços, Arrays, tracos, coisas que oculpam espaço, e acaba limitando mais meu email. quando coloco um três pedidos fica assim : Array( [0] => Array ( [id] => 41916 [nome] => ZITROMICIN 500 MG C/3 COMP. (AZITROMICINA) [qtde] => 1 ) [1] => Array ( [id] => 41057 [nome] => ZOLMICOL 20MG CREME 30G (CETOCONAZOL) [qtde] => 1 ) [2] => Array ( [id] => 41852 [nome] => ZOLPROX 500MG C/3 COMP. [qtde] => 1 )) e eu queria enviar isso por email, só que o gmail diz que o link é mt grande e não deixa enviar .. 2º queria saber como eliminar os espaços e os "Array( [0] => Array (" das linhas de envio. e se desse, eu queria que me dissessem como diminuir isso, para apenas Id: Nome: Qtd: facilitaría, porque como ta agora, demora um pouco pra discernir oque é o pedido ... aqui o meu classe/carrinho.php
<?php
#############################################
#                                           #
# Autor: Roberto Beraldo Chaiben (Beraldo)  #
#      E-Mail: rbchaiben@gmail.com          #
#                                           #
#############################################

/*
   Classe para manipulação de carrinhos de compras, com funções para adicionar produtos, remover produtos, alterar a quantidade de cada produto e cáuculo do valor total da compra.
*/

class Carrinho
{

    /*
       Função AdicionarProduto($id)
       Adiciona ao carrinho o produto cujo id na tabela produtos seja $id, passado como parâmetro da função.
       Se o id for inválido (NULL ou ''), axibe um alerta e retorna FALSE.
       Se o produto já estiver no carrinho, exibe um alerta e retorna FALSE.
    */

    public function AdicionarProduto($id)
    {
        if ($id == NULL || $id == '' || $id == 0)
        {
            echo "
            <script type=\"text/javascript\">
            alert ('O id do produto deve ser inteiro e maior que zero');
            </script>";
            return false;
        }

        /*
           A função ArrayCarrinho() retorna um array com os id's dos produtos e suas respectivas chaves no array $_SESSION['carrinho'].
        */
        $aCar = ArrayCarrinho();
        if (in_array ($id, $aCar))
        {
            echo "
            <script type=\"text/javascript\">
            alert ('O produto que você selecionou já está em seu carrinho de compras.\\n Para adicionar outra unidade, altere a quantidade do produro.');
            </script>
            ";
            return false;
        }

        $my = new MySQLiConnection();
        $sql = $my->query ("Select * From produtos Where id = ".$id);

        if ($sql->num_rows == 0)
        {
            echo "
            <script type=\"text/javascript\">
            alert ('Não foi encontrado um produto com esse id.');
            </script>";
            return false;
        }

        $f = $sql->fetch_object();
        $cod = $f->id;
        $nome = $f->nome;
        $preço = $f->preço;
        $desc = $f->descricao;

        //próxima chave de $_SESSION['carrinho']:
        $k = isset ($_SESSION['carrinho']) ? count ($_SESSION['carrinho']) : 0;

        $_SESSION['carrinho'][$k]['id'] = $cod;
        $_SESSION['carrinho'][$k]['nome'] = $nome;
        $_SESSION['carrinho'][$k]['qtde'] = 1;

        //ordena $_SESSION['carrinho'] por nome de produto:
        sort ($_SESSION['carrinho'], SORT_STRING);

    }


    /*
       Função RemoverProduto($id)
       Remove de $_SESSION['carrinho'] o produto cujo id na tabela produtos é $id, passado como parâmetro da função.
       Se o id for inválido (NULL ou ''), exibe um alerta e retorna FALSE.
    */

    public function RemoverProduto($id)
    {
        if ($id == NULL || $id == '' || $id == 0)
        {
            echo "
            <script type=\"text/javascript\">
            alert ('O id do produto deve ser inteiro e maior que zero');
            </script>";
            return false;
        }

        // encontra a chave cujo id é o passado na função e o coloca na variável $k
        $aCar = ArrayCarrinho();
        $k = array_search ($id, $aCar);

        unset ($_SESSION['carrinho'][$k]);
        if (count ($_SESSION['carrinho']))//se ainda houver produtos no carrinho
        {
            //organiza as chaves do array desde zero até (count ($_SESSION['carrinho']) - 1)
            $car_keys = range (0, (count ($_SESSION['carrinho']) - 1));
            $_SESSION['carrinho'] = array_combine ($car_keys, $_SESSION['carrinho']);
        }
        $_SESSION['total'] = $this->Total();

    }


    /*
       Função AlterarQuantidade($id, $n_qtde)
       Altera a quantidade de unidades do produto cujo id é $id para $n_qtde.
       Se o id for inválido (NULL ou ''), exibe um alerta e retorna FALSE.
       Se $n_qtde for maior que zero, altera a quantidade do produto; se for igual ou menor que zero, remove-o do carrinho.
    */


    public function AlterarQuantidade($id, $n_qtde)
    {
        if ($id == NULL || $id == '' || $id == 0)
        {
            echo "
            <script type=\"text/javascript\">
            alert ('O id do produto deve ser inteiro e maior que zero');
            </script>";
            return false;
        }

        if ($n_qtde > 0)
        {
            // encontra a chave cujo id é o passado na função e o coloca na variável $k
            $aCar = ArrayCarrinho();
            $k = array_search ($id, $aCar);

            $_SESSION['carrinho'][$k]['qtde'] = $n_qtde;
            $_SESSION['total'] = $this->Total();



e aqui, o carrinho.php

[code]<?php
$area = isset($_GET['area']) ? $_GET['area'] : NULL;
$acao = isset($_GET['acao']) ? $_GET['acao'] : NULL;
$objCar = new Carrinho;

if ($area == "carrinho")
{

    if ($acao == "adicionar")
    {
        $id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL;
        $objCar->AdicionarProduto ($id);

    }

    if ($acao == "remover")
    {
        $id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL;
        $objCar->RemoverProduto ($id);
    }

    if ($acao == "alt_qtde")
    {
        $id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL;
        $n_qtde = isset ($_POST['qtde_'.$id]) ? (int)$_POST['qtde_'.$id] : 1;
        $objCar->AlterarQuantidade($id, $n_qtde);
    }



    echo "
    <h2>Carrinho de Compras</h2>
    <table width=\"700\" cellpadding=\"2\" cellspacing=\"0\">
      <tr>
        <td width=\"300\" style=\"text-align:center\">Nome</td>
        <td width=\"100\" style=\"text-align:center\">Qunatidade</td>
        <td width=\"60\" style=\"text-align:center;\">Excluir<br />Produto</td>
      </tr>
    ";


    $carrinho = isset ($_SESSION['carrinho']) ? $_SESSION['carrinho'] : array();

    if (count ($carrinho) == 0)
    {
        echo "
        <tr>
          <td colspan=\"5\" style=\"text-align:center\"><strong><em>
            N&atilde;o h&aacute; produtos em seu carrinho de compas.</em></strong>
         </td>
        </tr>
        </table>
        <p><a href=\"?area=produtos\">Ver lista de produtos</a></p>
        ";
    }
    else
    {
           for ($a = 0; $a < count($carrinho); $a++)
        {
            $id = $carrinho[$a]['id'];
            $nome = htmlentities ($carrinho[$a]['nome']);
            $qtde = $carrinho[$a]['qtde'];

            echo "
            <tr>
              <td style=\"border-left: dashed 1px black;\" class=\"celulas\">".$nome."</td>
              <td class=\"celulas\">
              <form action=\"?area=carrinho&amp;acao=alt_qtde&amp;id=".$carrinho[$a]['id']."\"method=\"post\">
              <input type=\"text\" name=\"qtde_".$id."\" value=\"".$qtde."\" style=\"width: 30px;height: 15px;font-size:13px;text-align:center;border:inset 1px black;\" maxlength=\"2\" /><br />
              <input type=\"submit\" value=\"Alterar\" style=\"width: 80px;height: 20px;font-size:13px;margin:0;padding:0;cursor:pointer;background:#ccc;border: inset 1px black\" />
              </form>
              </td>
              <td class=\"celulas\"><a href=\"?area=carrinho&amp;acao=remover&amp;id=" .$id. "\" onclick=\"return ConfirmarExclusaoProduto()\">Excluir</a></td>
            </tr>
            ";
        }// fecha for

           echo "
        <tr>
          <td colspan=\"2\">&nbsp;</td>
        </tr>
        </table>
        <p><a href=\"?area=produtos\">Continuar Comprando</a> | <a href=\"?area=finalizar\">Finalizar Pedido</a></p>
        ";
    }// fecha else
}
?>

desde já, agradeço .. (:

Editado por khayro
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Você usaria apenas um foreach para qualquer quantidade de produtos ...

<?php
foreach($produtos as $produto) {
    echo '<input type="hidden" name="produtos[]" value="{$produto->id}" />';
}
?>

O trecho acima pode ser lido da seguinte forma: "Para cada produto em uma lista de produtos, imprima um campo hidden com id como valor".

Claro que você deve adaptar a sua realidade.

Um abraço.

Editado por Willian Gustavo Veiga
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...