Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SeveroSoft

Selecionar e adicionar campo

Recommended Posts

Olá pessoal, sou novo aqui no fórum, vim ver se aqui é bom para pedir ajuda quando necessário... e se posso também ajudar o pessoal quando precisa.

Gostaria educadamente de pedir ajuda no seguinte:

estou desenvolvendo um sistema de pedidos delivery...

mas preciso fazer em uma pagina php um Select ou radio button com a quantidade de Pizzas, exemplo.

1 Pizza
2 Pizzas
3 Pizzas
4 Pizzas

Ao selecionar um campo desses citados acima, gostaria de uma maneira de fazer com que abra um outro form ao lado ou em baixo do primeiro...

LEMBRANDO QUE O PEDIDO VAI IR PARA A DATA BASE ENTÃO ACREDITO EU Q NÃO TERIA COMO SALVAR TUDO EM 1 SÓ CAMPO.
DIGO...

O CLIENTE ESCOLHE OPÇÃO (2 PIZZAS)
APARECE 2 FORMULÁRIOS:
TAMANHO 1 (ABRIR CAMPOS DE SABORES RESPECTIVOS AO TAMANHO) "BROTO = 1 SABOR, PEQUENA = 2 SABORES, MÉDIA = 3 SABORES, GRANDE E GIGANTE = 4 SABORES."

SABOR 1 PIZZA 1
SABOR 2 PIZZA 1
SABOR 3 PIZZA 1
SABOR 4 PIZZA 1

BORDA RECHEADA?
(SIM) - (NÃO)

BEBIDA (REFRIGERANTE)

FORMULÁRIO 2

SERIA A MESMA COISA DO 1 MAS GOSTARIA TAMBEM DE SABER SE PRECISO TER CAMPOS NA DB TIPO

DB_TAMANHO1
DB_SABOR1_1
DB_BORDA1
DB_REFRI1

DB TAMANHO 2
DB_SABOR1_2
DB_BORDA2
DB_REFRI2
ETC...

GOSTARIA MUITO DA AJUDA DE VOCÊS...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem-vindo ao fórum! :)
Recomendo que leia as Regras e Orientações de participação

O que você conhece de PHP? A lógica é bem simples, mas depende do quanto você conhece de PHP.

Basicamente, é enviar o primeiro form (onde seleciona a quantidade de pizzas). Na segunda tela, com base no número, é feito um loop que exibe a quantidade de formulários.

Dá pra fazer tudo na mesma página, usando Ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, primeiramente gostaria de agradecer muito por ter respondido.

Estou criando tudo em 1 unica pagina, será q teria como me dar uma força? Pois infelizmente comecei no php a 1 semana.

Tambem gostaria muuito de saber como fazer para tocar um .mp3 sempre q o sistema verificar uma nova informação na db. (Essa parte poderia ser só a lógica)

Desde-já agradeço.

Echo 'muito obrigado';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comece estudando o envio de formulários. Aprenda a enviar e receber valores. Isso será fundamental para sua aplicação.

Não vamos te dar a resposta pronta, mas vamos orientar você a chegar até ela. :)

Links úteis:

http://rberaldo.com.br/pdo-mysql/

http://blog.ultimatephp.com.br/sistema-de-cadastro-php-mysql-pdo/

Também tenho um guia gratuito sobre dicas e boas práticas. Link na minha assinatura

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Beraldo essa parte eu já entendi sobre os formulários... oq preciso agora mesmo é o som na notificação, como poderia fazer para quando atualizar só tocar o mp3 caso exista um cadastro novo na db.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso já não é com o PHP. É HTML e Javascript.

Veja se isto ajuda:

http://pt.stackoverflow.com/questions/75138/tocar-som-de-alerta-após-consulta-no-banco-php-mysql

Quase haha, esse ai vai tocar se o numero for maior que zero, eu queria q tocasse sempre que um cliente enviasse o pedido ai atualizaria a db...

Só assim tocaria o som.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como sou iniciante consegui resolvendo assim em javascript


        if(option == "1 pizza"){
            document.getElementById("container").style.display ="block";
            document.getElementById("hiddenDiv2").style.visibility ="hidden";
            document.getElementById("hiddenDiv3").style.visibility ="hidden";
            document.getElementById("hiddenDiv4").style.visibility ="hidden";
            document.getElementById("hiddenDiv").style.visibility ="visible";
            document.getElementById("container").style.visibility ="visible";
            document.getElementById("container2").style.visibility ="visible";
            document.getElementById("hiddenDiv5").style.visibility ="hidden";
        }
        if(option == "2 pizzas"){
            document.getElementById("container").style.display ="block";
            document.getElementById("hiddenDiv3").style.visibility ="hidden";
            document.getElementById("hiddenDiv4").style.visibility ="hidden";
            document.getElementById("hiddenDiv").style.visibility ="visible";
            document.getElementById("hiddenDiv2").style.visibility ="visible";
            document.getElementById("container").style.visibility ="visible";
            document.getElementById("container2").style.visibility ="visible";
            document.getElementById("hiddenDiv5").style.visibility ="hidden";
        }
        if(option == "3 pizzas"){
            document.getElementById("container").style.display ="block";
            document.getElementById("hiddenDiv4").style.visibility ="hidden";
            document.getElementById("hiddenDiv2").style.visibility ="visible";
            document.getElementById("hiddenDiv").style.visibility ="visible";
            document.getElementById("hiddenDiv3").style.visibility ="visible";
            document.getElementById("container").style.visibility ="visible";
            document.getElementById("container2").style.visibility ="visible";
            document.getElementById("hiddenDiv5").style.visibility ="hidden";
        }
        if(option == "4 pizzas"){
            document.getElementById("container").style.display ="block";
            document.getElementById("hiddenDiv3").style.visibility ="visible";
            document.getElementById("hiddenDiv2").style.visibility ="visible";
            document.getElementById("hiddenDiv").style.visibility ="visible";
            document.getElementById("hiddenDiv4").style.visibility ="visible";
            document.getElementById("container").style.visibility ="visible";
            document.getElementById("container2").style.visibility ="visible";
            document.getElementById("hiddenDiv5").style.visibility ="hidden";
        }
        if(option == "0"){
            document.getElementById("container").style.display ="none";
            document.getElementById("hiddenDiv3").style.visibility ="hidden";
            document.getElementById("hiddenDiv2").style.visibility ="hidden";
            document.getElementById("hiddenDiv").style.visibility ="hidden";
            document.getElementById("container").style.visibility ="hidden";
            document.getElementById("container2").style.visibility ="hidden";
            document.getElementById("hiddenDiv4").style.visibility ="hidden";
            document.getElementById("hiddenDiv5").style.visibility ="visible";
        }
    }

Essa parte ok, mas agora estou precisando fazer a soma de todos os campos para dar o valor no final do pedido.

E isso já tentei fazer aqui. teria como fazer essa soma sendo que os campos não tem value numericos?
e como proceder?

Compartilhar este post


Link para o post
Compartilhar em outros sites

<select>
<option value="broto">broto</option>
<option value="media">media</option>
<option value="grande">grande</option>

<option value="gigante">gigante</option>
</select>

peguei esse exemplo da net...

Como somar esses campos ? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe soma nesse caso. Você vai receber a string. Essa string deve corresponder a um valor numérico. Esse valor é que entrará na soma

Você pode, por exemplo, criar um array associativo (objeto no Javascript) que vincula cada tipo de pizza com seu valor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe soma nesse caso. Você vai receber a string. Essa string deve corresponder a um valor numérico. Esse valor é que entrará na soma

Você pode, por exemplo, criar um array associativo (objeto no Javascript) que vincula cada tipo de pizza com seu valor

Agora você falou meio ingles pra mim, poderia me dar uma demonstração de como eu faria isso?

eu fui obrigado a fazer assim:


<br><div id="container" style="display:none;">
<div id="hiddenDiv" style="visibility:hidden;">
Selecione o tamanho da pizza 1:
<select id="tamanho_1" onchange="optionCheck1()">
<option value="0">Selecione</option>
<option value="broto">Broto</option>
<option value="pequena">Pequena</option>
<option value="media">Média</option>
<option value="grande">Grande</option>
<option value="gigante">Gigante</option>
</select>
</div>
<div id="hiddenDiv2" style="visibility:hidden;">
Selecione o tamanho da pizza 2: 
<select id="tamanho_2" onchange="optionCheck2()">
<option value="02">Selecione</option>
<option value="broto2">Broto</option>
<option value="pequena2">Pequena</option>
<option value="media2">Média</option>
<option value="grande2">Grande</option>
<option value="gigante2">Gigante</option>
</select>
</div>
<div id="hiddenDiv3" style="visibility:hidden;">
Selecione o tamanho da pizza 3: 
<select id="tamanho_3" onchange="optionCheck3()">
<option value="03">Selecione</option>
<option value="broto3">Broto</option>
<option value="pequena3">Pequena</option>
<option value="media3">Média</option>
<option value="grande3">Grande</option>
<option value="gigante3">Gigante</option>
</select>
</div>
<div id="hiddenDiv4" style="visibility:hidden;">
Selecione o tamanho da pizza 4: 
<select id="tamanho_4" onchange="optionCheck4()">
<option value="04">Selecione</option>
<option value="broto4">Broto</option>
<option value="pequena4">Pequena</option>
<option value="media4">Média</option>
<option value="grande4">Grande</option>
<option value="gigante4">Gigante</option>
</select>

pq não posso repetir o "VALUE" dos select option...

Então como eu poderia adicionar um valor a cada campo desses?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode repetir o vallue, sim. Só o id que não pode se repetir

O que eu quis dizer foi algo assim:

$prices = array(
    'broto' => 9.90,
    'media' => 19.90,
    'grande' => 29.90,
);

Considerando que $tamanho recebe o tamanho da pizza selecionada pelo usuário, bastaria fazer o seguinte pra saber o preço:

echo $prices[$tamanho];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria legal você informar se tem alguma tabela/campo/array

com os preços pre definidos.

Edit:

(como o Beraldo falou acima hehe)

Ex qnt vale uma 'broto3'???

Tenho um link de apoio no meu GitHub para JS, tem bastante link nas :

https://github.com/gabrieldarezzo/helpjs-ravi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Beraldo, eu iria colocar todos com o mesmo value mas na hora de mandar pro banco de dados não daria muito certo...

o cliente quer pedir 3 pizzas, ele quer as 3 gigantes, ai enviaria o valor das 3 pro mesmo campo e não daria muito certo. ao meu ver.

esta bem complicado pra mim essa etapa.

sobre o array vou dar uma estudada e irei usar essa sua base...

Se puder me dar uma ajuda maior com essa questão toda eu agradeço muito mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria legal você informar se tem alguma tabela/campo/array

com os preços pre definidos.

Edit:

(como o Beraldo falou acima hehe)

Ex qnt vale uma 'broto3'???

Tenho um link de apoio no meu GitHub para JS, tem bastante link nas :

https://github.com/gabrieldarezzo/helpjs-ravi

Irei dar uma conferida no seu link do github, para ver se aprendo um pouco mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se cada <select> tiver um name distinto, os values podem ser iguais. Você vai identificar cada pizza pelo name do <scelect>

Ou até melhor: receba um array, fazendo assim:

<select name="pizza[]">
    options
</select>
 
<select name="pizza[]">
    options
</select>

Assim, $_POST['pizza'] será um array e poderá percorrê-lo com um loop

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.