My array is not returning, if you do not select a previous value

Asked

Viewed 49 times

2

Guys, I’m doing a "lot your pc" and there are some things that are optional and if you do not select a previous one, it does not bring me the value of the remaining.

Example:

  • Cabinet
  • Motherboard
  • video card
  • SDD(optional)
  • SO(OPTIONAL)
  • source

If I don’t select the options there, it doesn’t give me the value or the amount of the source.

<form name="monteseupc">
                  <div class="form-group">
                     <label for="nome">Gabinetes</label>
                     <select class="form-control" style="width:40%"; nome="gabinete" id="SelectGabinete">
                      <option value="0">Escolha o Gabinete</option>
                      <?php while($rows_produtos = mysqli_fetch_assoc($resultadoprodutos)) { ?>

                       <option value="<?php echo $rows_produtos['valor'] ?>" data-nome="<?php echo $rows_produtos['nome'] ?>"> <?php echo $rows_produtos['nome']." R$ ".number_format($rows_produtos['valor'],2,",",".") ?></option>
                       <?php } ?>
                     </select>
                     <input type="hidden" id="valorGabinete">
                     <input type="number" id="QGabinetes" pattern="[0-9]+([\,|\.][0-9]+)?" value="0" min="0" max="99" style="width:7%;" class="form-control">
                  </div>


                  <div class="form-group">
                     <label for="processador">Processador</label>
                     <select nome="processador" id="selectProcessador">
                     <option value="0">Escolha o Processador</option> 
                       <?php while($rows_produtos2 = mysqli_fetch_assoc($resultadoprodutos2)) { ?>

                       <option value="<?php echo $rows_produtos2['valor'] ?>" data-nome="<?php echo $rows_produtos2['nome'] ?>"> <?php echo $rows_produtos2['nome']." R$ ".number_format($rows_produtos2['valor'],2,",",".") ?></option>
                       <?php } ?>

                     </select>
                     <input type="hidden" id="valorProcessador">
                     <input type="number" id="QProcessador" pattern="[0-9]+([\,|\.][0-9]+)?" value="0" max="99" min="0" style="width:7%" class="form-control">
                  </div>

                  <div class="form-group">
                     <label for="placamae">Placa Mãe</label>
                     <select nome="placamae" id="selectPlacamae">
                     <option value="0">Escolha a Placa Mãe</option> 
                      <?php while($rows_produtos3 = mysqli_fetch_assoc($resultadoprodutos3)) { ?>

                       <option value="<?php echo $rows_produtos3['valor']?>" data-nome="<?php echo $rows_produtos3['nome'] ?>"> <?php echo $rows_produtos3['nome']." R$ ".number_format($rows_produtos3['valor'],2,",",".") ?></option>
                       <?php } ?>

                     </select>


let arrayG = new Array(),
    arrayP = new Array(),
    arrayPm = new Array(),
    arrayMe = new Array(),
    arrayPv = new Array(),
    arrayHD = new Array(),
    arraySSD = new Array(),
    arraySO = new Array(),
    arrayGr = new Array(),
    arrayWc = new Array(),
    arrayC = new Array(),
    arrayF = new Array(),
    arrayMo = new Array(),
    arrayTe = new Array(),
    arrayHe = new Array(),
    arrayMon = new Array(),
    arrayAda = new Array(),
    arrayG1 = new Array(),
    arrayP1 = new Array(),
    arrayPm1 = new Array(),
    arrayMe1 = new Array(),
    arrayPv1 = new Array(),
    arrayHD1 = new Array(),
    arraySSD1 = new Array(),
    arraySO1 = new Array(),
    arrayGr1 = new Array(),
    arrayWc1 = new Array(),
    arrayC1 = new Array(),
    arrayF1 = new Array(),
    arrayMo1 = new Array(),
    arrayTe1 = new Array(),
    arrayHe1 = new Array(),
    arrayMon1 = new Array(),
    arrayAda1 = new Array();
$("#SelectGabinete").change(function() {
    $("#valorGabinete").val($(this).val());
    $("#nomedoGabinetes").html("Gabinete Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayG1 = [$("#valorGabinete").val()]
});
$("#selectProcessador").change(function() {
    $("#valorProcessador").val($(this).val());
    $("#nomedoProcessador").html("Processador Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayP1 = [$("#valorProcessador").val()]
});
$("#selectPlacamae").change(function() {
    $("#valorPlacamae").val($(this).val());
    $("#nomedoPlacamae").html("Placa mãe Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayPm1 = [$("#valorPlacamae").val()]
});
$("#selectMemoria").change(function() {
    $("#valorMemoria").val($(this).val());
    $("#nomedoMemoria").html("Memória Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayMe1 = [$("#valorMemoria").val()]
});
$("#selectPlacadevideo").change(function() {
    $("#valorPlacadevideo").val($(this).val());
    $("#nomedoPlacadevideo").html("Placa de video Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayPv1 = [$("#valorPlacadevideo").val()]
});
$("#selectHD").change(function() {
    $("#valorHD").val($(this).val());
    $("#nomedoHD").html("HD Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayHD1 = [$("#valorHD").val()]
});
$("#selectSSD").change(function() {
    $("#valorSSD").val($(this).val());
    $("#nomedoSSD").html("SSD Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arraySSD1 = [$("#valorSSD").val()]
});
$("#selectSO").change(function() {
    $("#valorSO").val($(this).val());
    $("#nomedoSO").html("SO Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arraySO1 = [$("#valorSO").val()]
});
$("#selectGravador").change(function() {
    $("#valorGravador").val($(this).val());
    $("#nomedoGravador").html("Gravador Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayGr1 = [$("#valorGravador").val()]
});
$("#selectWcooler").change(function() {
    $("#valorWcooler").val($(this).val());
    $("#nomedoWcooler").html("Water Cooler Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayWc1 = [$("#valorWcooler").val()]
});
$("#selectCooler").change(function() {
    $("#valorCooler").val($(this).val());
    $("#nomedoCooler").html("Cooler Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayC1 = [$("#valorCooler").val()]
});
$("#selectFonte").change(function() {
    $("#valorFonte").val($(this).val());
    $("#nomedoFonte").html("Fonte Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayF1 = [$("#valorFonte").val()]
});
$("#selectMouse").change(function() {
    $("#valorMouse").val($(this).val());
    $("#nomedoMouse").html("Mouse Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayMo1 = [$("#valorMouse").val()]
});
$("#selectTeclado").change(function() {
    $("#valorTeclado").val($(this).val());
    $("#nomedoTeclado").html("Teclado Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayTe1 = [$("#valorTeclado").val()]
});
$("#selectHeadset").change(function() {
    $("#valorHeadset").val($(this).val());
    $("#nomedoHeadset").html("HeadSet Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayHe1 = [$("#valorHeadset").val()]
});
$("#selectMonitor").change(function() {
    $("#valorMonitor").val($(this).val());
    $("#nomedoMonitor").html("Monitor Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayMon1 = [$("#valorMonitor").val()]
});
$("#selectAdaptador").change(function() {
    $("#valorAdaptador").val($(this).val());
    $("#nomedoAdaptador").html("Adaptador Escolhido:<br><b>" + $(this).find(':selected').data('nome') + "</b><br><br>");
    arrayAda1 = [$("#valorAdaptador").val()]
});
$("input[type=number][id=QGabinetes]").change(function() {
    arrayG = [$(this).val()]
});
$("input[type=number][id=QProcessador]").change(function() {
    arrayP = [$(this).val()]
});
$("input[type=number][id=QPlacamae]").change(function() {
    arrayPm = [$(this).val()]
});
$("input[type=number][id=QMemoria]").change(function() {
    arrayMe = [$(this).val()]
});
$("input[type=number][id=QPlacadevideo]").change(function() {
    arrayPv = [$(this).val()]
});
$("input[type=number][id=QHD]").change(function() {
    arrayHD = [$(this).val()]
});
$("input[type=number][id=QSSD]").change(function() {
    arraySSD = [$(this).val()]
});
$("input[type=number][id=QSO]").change(function() {
    arraySO = [$(this).val()]
});
$("input[type=number][id=QGravador]").change(function() {
    arrayGr = [$(this).val()]
});
$("input[type=number][id=QWcooler]").change(function() {
    arrayWc = [$(this).val()]
});
$("input[type=number][id=QCooler]").change(function() {
    arrayC = [$(this).val()]
});
$("input[type=number][id=QFonte]").change(function() {
    arrayF = [$(this).val()]
});
$("input[type=number][id=QMouse]").change(function() {
    arrayMo = [$(this).val()]
});
$("input[type=number][id=QTeclado]").change(function() {
    arrayTe = [$(this).val()]
});
$("input[type=number][id=QHeadset]").change(function() {
    arrayHe = [$(this).val()]
});
$("input[type=number][id=QMonitor]").change(function() {
    arrayMon = [$(this).val()]
});
$("input[type=number][id=QAdaptador]").change(function() {
    arrayAda = [$(this).val()]
});
$("select").change(function() {
    let soma = (+$("#valorGabinete").val() * $("#QGabinetes").val()) + (+$("#valorProcessador").val() * $("#QProcessador").val()) + (+$("#valorPlacamae").val() * $("#QPlacamae").val()) + (+$("#valorMemoria").val() * $("#QMemoria").val()) + (+$("#valorPlacadevideo").val() * $("#QPlacadevideo").val()) + (+$("#valorHD").val() * $("#QHD").val()) + (+$("#valorSSD").val() * $("#QSSD").val()) + (+$("#valorSO").val() * $("#QSO").val()) + (+$("#valorGravador").val() * $("#QGravador").val()) + (+$("#valorWcooler").val() * $("#QWcooler").val()) + (+$("#valorCooler").val() * $("#QCooler").val()) + (+$("#valorFonte").val() * $("#QFonte").val()) + (+$("#valorMouse").val() * $("#QMouse").val()) + (+$("#valorTeclado").val() * $("#QTeclado").val()) + (+$("#valorHeadset").val() * $("#QHeadset").val()) + (+$("#valorMonitor").val() * $("#QMonitor").val()) + (+$("#valorAdaptador").val() * $("#QAdaptador").val());
    $("#totalProdutos").html("Total da compra R$ " + mascaraValor(soma.toFixed(2)));
    $("#valortotalprodutos").val(soma)
});
$("input[type=number]").change(function() {
    let soma = (+$("#valorGabinete").val() * $("#QGabinetes").val()) + (+$("#valorProcessador").val() * $("#QProcessador").val()) + (+$("#valorPlacamae").val() * $("#QPlacamae").val()) + (+$("#valorMemoria").val() * $("#QMemoria").val()) + (+$("#valorPlacadevideo").val() * $("#QPlacadevideo").val()) + (+$("#valorHD").val() * $("#QHD").val()) + (+$("#valorSSD").val() * $("#QSSD").val()) + (+$("#valorSO").val() * $("#QSO").val()) + (+$("#valorGravador").val() * $("#QGravador").val()) + (+$("#valorWcooler").val() * $("#QWcooler").val()) + (+$("#valorCooler").val() * $("#QCooler").val()) + (+$("#valorFonte").val() * $("#QFonte").val()) + (+$("#valorMouse").val() * $("#QMouse").val()) + (+$("#valorTeclado").val() * $("#QTeclado").val()) + (+$("#valorHeadset").val() * $("#QHeadset").val()) + (+$("#valorMonitor").val() * $("#QMonitor").val()) + (+$("#valorAdaptador").val() * $("#QAdaptador").val());
    $("#totalProdutos").html("Total da compra R$ " + mascaraValor(soma.toFixed(2)));
    $("#valortotalprodutos").val(soma)









    $("#submit").click(function(event) {
       let arrayQtd = arrayG.concat(arrayP.concat(arrayPm.concat(arrayMe.concat(arrayPv.concat(arrayHD.concat(arraySSD.concat(arraySO.concat(arrayGr.concat(arrayWc.concat(arrayC.concat(arrayF.concat(arrayMo.concat(arrayTe.concat(arrayHe.concat(arrayMon.concat(arrayAda)))))))))))))))),

          arrayValor = arrayG1.concat(arrayP1.concat(arrayPm1.concat(arrayMe1.concat(arrayPv1.concat(arrayHD1.concat(arraySSD1.concat(arraySO1.concat(arrayGr1.concat(arrayWc1.concat(arrayC1.concat(arrayF1.concat(arrayMo1.concat(arrayTe1.concat(arrayHe1.concat(arrayMon1.concat(arrayAda1)))))))))))))))),

         nomeGabinete= $("#nomedoGabinetes").text(), nomeProcessador= $("#nomedoProcessador").text(), nomePlacamae =$("#nomedoPlacamae").text(), nomeMemoria = $("#nomedoMemoria").text(), nomedoPlacadevideo =$("#nomedoPlacadevideo").text(), nomeHD = $("#nomedoHD").text(), nomeSSD= $("#nomedoSSD").text(), nomeSO=$("#nomedoSO").text(), nomeGravador=$("#nomedoGravador").text(), nomeWcooler=$("#nomedoWcooler").text(), nomeCooler=$("#nomedoCooler").text(), nomefonte=$("#nomedoFonte").text(), nomeMouse=$("#nomedoMouse").text(), nomeTeclado=$("#nomedoTeclado").text(), nomeHeadset=$("#nomedoHeadset").text(),   nomeMonitor=$("#nomedoMonitor").text(), nomeAdaptador=$("#nomedoAdaptador").text(), valortotal=$("#valortotalprodutos").val(), nome=$("#nome").val(), email=$("#email").val();

 $.ajax('enviar_montepc.php',{
          type: 'POST',
          data:{'arrayValor':arrayValor, 'arrayQtd':arrayQtd, 'nome':nome, 'email':email, 'nomeGabinete':nomeGabinete, 'nomeProcessador':nomeProcessador, 'nomePlacamae':nomePlacamae, 'nomeMemoria':nomeMemoria, 'nomedoPlacadevideo':nomedoPlacadevideo, 'nomeHD':nomeHD, 'nomeSSD':nomeSSD, 'nomeSO':nomeSO, 'nomeGravador':nomeGravador, 'nomeWcooler':nomeWcooler, 'nomeCooler':nomeCooler, 'nomefonte':nomefonte, 'nomeMouse':nomeMouse,  'nomeTeclado':nomeTeclado, 'nomeHeadset':nomeHeadset,'nomeMonitor':nomeMonitor, 'nomeAdaptador':nomeAdaptador, 'valortotal':valortotal }
        }).done(function(r){
          if(r==0){
              $.alert({

                content: 'Mensagem enviada com sucesso',
            });


          }   
          else if(r==1){

            $.alert({
            title: 'Atenção!',
                content: 'Ocorrou um erro ao ser enviado o e-mail',
            });

          } 

        }).fail(function(){
             $.alert({
                content: 'Tente novamente',
            });
        });



      });

The PHP part is working normally.

Vlw for the help.

  • 1

    Sorry for the comment not related to the question, but have you thought about using a framework like the Vue? It really helps to narrow down these monstrous lines.

  • Show an error or just don’t return anything? Already tried to send the data directly to PHP without AJAX?

  • I don’t know if that’s the case, but in sql for example concatenation with null nullifies the entire result. Have you tested virificse nullity before concatenating? Or deliver empty arrays instead of null?

  • I’m not using sql for this! I’m passing everything to php, saving it in a variable and sending it to e-mail. It sends the email without error, only if I do not select what is not mandatory and select something later, it does not send the value, nor the quantity, just send the name

  • Operating System: 8.1 Unit Value R$ 765.00 Quantity: 1 Burner: dvd Unit Value R$ 423,424.00 Quantity: 1 Water Cooler: not chosen Cooler: not chosen Source: data Unit Value R$ 0.00 Quantity: Mouse: not chosen Keyboard: Razer Unit Value R$ 0,00 Quantity: Monitor: not chosen Adapter: not chosen Value total purchase is: R$ 562,663,18

  • Could you post in the question HTML and JS to see how these options are being selected? Put also the code of how these arrays are handled. The problem could be in this.

  • Oops, I put the question there! If you can give a light, thank you.

Show 2 more comments
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.