100% provize za získaného klienta. Provize za jednoho klienta až 8 roků. To není vtip! Začni již dnes.
Zobrazují se odpovědi 1 až 18 z 18

Parsování multi checkboxů do pole.a pak z php poslat emailem.

  1. Ahoj všichni dobří lidé,

    Parsuji data, podařio se mi na click vypsat vždy zaškrtlá pole v nějaké podobě a potřebuji tu podobu dostat do php a poslat emailem.
    Zde je html:

    Kód:
        <div class="regarea">
                    <form id="regForm" action="" name="regForm" style="color:black;">
    <div class="tab">
                    <h1 style="font-size: 40px; padding-bottom: 20px; font-weight: 400; display: block;margin: 0px 0px 10px 0px;"> Co očekáváte od svého účtu</h1><br>
                   
    <div id="checkbox-buttons">
        <input class="cGroup" type="checkbox" name="cGroup[]" value="Běžný účet" id="c1" />
        <label class="boxy" for="c1">Běžný<br /> účet</label>
        <input class="cGroup" type="checkbox" name="cGroup[]" value="Výběr z bankomatů" id="c2" />
        <label class="boxy" for="c2">Výběr z<br /> bankomatů</label>
        <input class="cGroup" type="checkbox" name="cGroup[]" value="Smart Banking" id="c3" />
        <label class="boxy" for="c3">Smart<br /> Banking</label>
        <input class="cGroup" type="checkbox" name="cGroup[]" value="Online Banking" id="c4" />
        <label class="boxy" for="c4">Online<br /> Banking</label>
        <input class="cGroup" type="checkbox" name="cGroup[]" value="Platební karta" id="c5" />
        <label class="boxy" for="c5">Platební<br /> karta</label>
        <input class="cGroup" type="checkbox" name="cGroup[]" value="Rezerva na účtu" id="c6" />
        <label class="boxy" for="c6">Rezerva<br /> na účtu</label>
        <input class="cGroup"type="checkbox" name="cGroup[]" value="Kreditní karta" id="c7" />
        <label class="boxy" for="c7">Kreditní<br /> karta</label>
        <input class="cGroup" type="checkbox" name="cGroup[]" value="U-šetřete" id="c8" />
        <label class="boxy" for="c8">U-šetřete<br /> s námi</label>
        
    </div>


    Zde Jquery:

    Kód:
    <script  type="text/javascript" src="/./js/jquery-1.11.2.min.js"></script>
    
    
    
    <script>
     $(document).ready(function() {
    
    
    
    
       
     $("#gdpr").bind("click", function() {
            if($(this).is(":checked")) {
              submitForm();
              
             $("#gdpr").attr("disabled", true); 
             
               console.log("true");
            } else {
              formError(); 
               console.log("false");
            }
        });  
       
    
    $(".cGroup").bind("click", function() {
            if($(this).is(":checked")) {
              
           
      var arr = $("input[name='cGroup[]']").map(function(){
      return $(this).val();
    }).get();
    
    
          var data = { "cGroup[]" : []};
            $(":checked").each(function() {
           data["cGroup[]"].push($(this).val());
           });
    
    console.log(arr);
    
    console.log(data);
    
            
            
            } else {
            
               console.log("false");
            }
        });  
       
    
    
       
    
    
    
    
    
    
    
    
    
    function submitForm(){
      
    
    
        var data = { "cGroup[]" : []};
            $(":checked").each(function() {
           data["cGroup[]"].push($(this).val());
           });
      
      
      
      
      
      
        $.ajax({
            type: "POST",
            url: "/php/form-process.php",
            data:{ "data" : data  },
            success : function(text){
                if (text == "success"){
                    formSuccess();
                } else {
                    formError();
                    submitMSG(false,text);
                }
            }
        });
    }
    
    
    
     });
    
    </script>
    A php:

    Kód:
    
    <?php
     print_r($_POST['cGroup']);
     
     
    $errorMSG = "";
    
    
    
    $selected_checkbox = $_POST['cGroup'];
    
    
    
    $EmailTo = "gargulakpetr@seznam.cz";
    $Subject = "New Message Received";                                                                     /*upravení předmětu... funkce.base64_encode. připojit k proměnné a připojit řetězce*/
    $hlavicka="From:\nReply-to:\nContent-type:text/plain;charset=\"utf-8\"\nMINE-Version:1.0\nContent-Transfer-Encoding: 8bit\n";
    // prepare email body text
    $Body = "";
    $Body .= "Co očekáváte od svého účtu ? ";
    $body .= $selected_checkbox;
    $Body .= "\n";
    
    // send email
    $success = mail($EmailTo, $Subject, $Body, $hlavicka);
    
    // redirect to success page
    if ($success && $errorMSG == ""){
       echo "success";
    }else{
        if($errorMSG == ""){
            echo "Something went wrong :(";
        } else {
            echo $errorMSG;
        }
    }
    
    ?>
    Jak vypsat checkboxy do mailu ? Už to vypisuje pole podle toho co zaškrtnu, když odešlu vykoná se funkce s parsováním dat do ajaxu.....podoba je pole....a pošle to do souboru process.php...kde ten po vezme....co tam mám špatně ?


    Přikládám obrázek... s těma funkcema to je tady: když zaškrtávám checkboxy.....Název:  konzole.png
Zobrazení: 81
Velikost:  54,1 KB

    Kód:
    $(".cGroup").bind("click", function() {
            if($(this).is(":checked")) {
              
           
      var arr = $("input[name='cGroup[]']").map(function(){
      return $(this).val();
    }).get();
    
    
    var test = $("input[name='cGroup[]']").map(function(){ return $(this).val(); }).get().join(",");
    
    
          var data = { "cGroup[]" : []};
            $(".cGroup:checked").each(function() {
           data["cGroup[]"].push($(this).val());
           });
    
    console.log(arr);
    
    console.log(data);
    
    console.log(test);        
            
            } else {
            
               console.log("false");
            }
        });
    Naposledy upravil PetrGargulák : 10.11.2018 v 12:32

  2. Co se právě děje na Webtrhu?
  3. v tom php projdi to pole pomoci foreach

  4. Citace Původně odeslal Taps Zobrazit příspěvek
    v tom php projdi to pole pomoci foreach
    Ahoj a díky,

    dal jsem tam toto, email to odešle, ale ty data mi to nevezme....

    Kód:
    <?php
     print_r($_POST['cGroup']);
     
     
    $errorMSG = "";
    
    
    
    
    
    $selected_checkbox = $_POST['cGroup'];
    foreach ($selected_checkbox as $value) {
     return $value;
    }
    
    
    
    
    
    
    
    $EmailTo = "gargulakpetr@seznam.cz";
    $Subject = "New Message Received";                                                                     /*upravení předmětu... funkce.base64_encode. připojit k proměnné a připojit řetězce*/
    $hlavicka="From:\nReply-to:\nContent-type:text/plain;charset=\"utf-8\"\nMINE-Version:1.0\nContent-Transfer-Encoding: 8bit\n";
    // prepare email body text
    $Body = "";
    $Body .= "Co očekáváte od svého účtu ? ";
    $body .= $selected_checkbox;
    $body .= $value;
    $Body .= "\n";
    
    // send email
    $success = mail($EmailTo, $Subject, $Body, $hlavicka);
    
    // redirect to success page
    if ($success && $errorMSG == ""){
       echo "success";
    }else{
        if($errorMSG == ""){
            echo "Something went wrong :(";
        } else {
            echo $errorMSG;
        }
    }
    
    ?>

  5. to je spatne. zkus toto

    Kód:
    $selected_checkbox = $_POST['cGroup'];
    foreach ($selected_checkbox as $polozky) {
     $value.= $polozky."\n";
    }
    a pak

    Kód:
    $Body .= $value;

  6. nic nepřišlo....co mám udělat teď ?

    ---------- Příspěvek doplněn 10.11.2018 v 14:50 ----------

    JE TAM TATO CHYBA:

    Warning: Invalid argument supplied for foreach() in /data/web/virtuals/203144/virtual/www/php/form-process.php on line 15

    Kód:
    <?php
     print_r($_POST['cGroup']);
     
     
    $errorMSG = "";
    
    
    
    
    
    $selected_checkbox = $_POST['cGroup'];
    foreach ($selected_checkbox as $polozky) {
     $value.= $polozky."\n";
    
    }
    
    
    
    
    
    
    
    $EmailTo = "gargulakpetr@seznam.cz";
    $Subject = "New Message Received";                                                                     /*upravení předmětu... funkce.base64_encode. připojit k proměnné a připojit řetězce*/
    $hlavicka="From:\nReply-to:\nContent-type:text/plain;charset=\"utf-8\"\nMINE-Version:1.0\nContent-Transfer-Encoding: 8bit\n";
    // prepare email body text
    $Body = "";
    $Body .= "Co očekáváte od svého účtu ? ";
    $body .= $value;
    $Body .= "\n";
    
    // send email
    $success = mail($EmailTo, $Subject, $Body, $hlavicka);
    
    // redirect to success page
    if ($success && $errorMSG == ""){
       echo "success";
    }else{
        if($errorMSG == ""){
            echo "Something went wrong :(";
        } else {
            echo $errorMSG;
        }
    }
    
    ?>

  7. co vam zobrazi print_r($_POST['cGroup']);
    ?

    vypada to , jak kdyby $_POST['cGroup'] nebylo polem

  8. A co ti to vypisuje $_POST['cGroup'] ? Objekt nebo pole? Očividne foreach to žrát nechce, takže něco bude špatně s daty ... Pošli sem kod výpis druhé řádky:
    Kód:
    print_r($_POST['cGroup']);

  9. Nic. Ten php soubor je jinde než jquery a html. takže mi to pořád ukazuje succes při každém refresh a skutečně se to odešle... ale data nedorazí. Jestli víte jak ten print vyzkoušet tak mi to napište a já to vyzkouším.

  10. Tak jinak. 2 dokumenty
    - HTML s JS scriptem
    - PHP na který voláš pomocí JS

    Teď máš chybu PHP. Takže co uděláš je to, že si musíš nechat vrátit VŠECHNO co PHP soubor vypíše. Takže teď kašli na odesílání mailu a starej se jen o to, abys měl v "$value" nakonec data.

    Takže seš na tom HTML dokumentu a do toho AJAX dopíšeš:
    Kód:
    $.ajax({
            type: "POST",
            url: "/php/form-process.php",
            data:{ "data" : data  },
            success : function( returnData ){
                console.log( returnData );
            }
        });
    Tak, teď všechno, co ti vypíše ten supr PHP soubor uvidíš v konzoli, aniž bys na ten file musel lozit (chodit v prohlížeči).

    PHP kod uprav takto:
    Kód:
    <?php
    	print_r($_POST['cGroup']);
     
    	// $errorMSG = "";
    
    	/*$selected_checkbox = $_POST['cGroup'];
    	foreach ($selected_checkbox as $polozky) {
    		$value.= $polozky."\n";
    	}*/
    
    	/*$EmailTo = "gargulakpetr@seznam.cz";
    	$Subject = "New Message Received"; //upravení předmětu... funkce.base64_encode. připojit kproměnné a připojit řetězce 
    	$hlavicka="From:\nReply-to:\nContent-type:text/plain;charset=\"utf-8\"\nMINE-Version:1.0\nContent-Transfer-Encoding: 8bit\n";
    	// prepare email body text
    	$Body = "";
    	$Body .= "Co očekáváte od svého účtu ? ";
    	$body .= $value;
    	$Body .= "\n";
    
    	// send email
    	$success = mail($EmailTo, $Subject, $Body, $hlavicka);
    
    	// redirect to success page
    	if ($success && $errorMSG == ""){
    	   echo "success";
    	}else{
    	    if($errorMSG == ""){
    	        echo "Something went wrong :(";
    	    } else {
    	        echo $errorMSG;
    	    }
    	}*/
    
    ?>
    Teď odešli ten formulář se zaškrnutejma polema a řekni nám, co v tý konzoli je. Uvidíš tam výpis toho $_POST['cGroup'] ...

    PS: JS a PHP jsou 2 jiný jazyky, nejde srovnávat console.log() proměnné v JS a print_r() proměnné v PHP ...

  11. Citace Původně odeslal Doctore97 Zobrazit příspěvek
    A co ti to vypisuje $_POST['cGroup'] ? Objekt nebo pole? Očividne foreach to žrát nechce, takže něco bude špatně s daty ... Pošli sem kod výpis druhé řádky:
    Kód:
    print_r($_POST['cGroup']);


    tohle to vypisuje název pole..index pole..a podle toho na co kliknu... je to varr data

    Název:  konzole.png
Zobrazení: 55
Velikost:  54,1 KB


    Kód:
    $(".cGroup").bind("click", function() {
            if($(this).is(":checked")) {
              
           
      var arr = $("input[name='cGroup[]']").map(function(){
      return $(this).val();
    }).get();
    
    
    var test = $("input[name='cGroup[]']").map(function(){ return $(this).val(); }).get().join(",");
    
    
          var data = { "cGroup[]" : []};
            $(".cGroup:checked").each(function() {
           data["cGroup[]"].push($(this).val());
           });
    
    console.log(arr);
    
    console.log(data);
    
    console.log(test);        
            
            } else {
            
               console.log("false");
            }
        });

  12. No měl jsem otevřený soubor s php v prohlížeči a z další stránky jsem odeslal...formuláč ze zaškrtlejma checkboxama.....v konzoli na stránce s php nebylo nic

  13. Citace Původně odeslal PetrGargulák Zobrazit příspěvek
    No měl jsem otevřený soubor s php v prohlížeči a z další stránky jsem odeslal...formuláč ze zaškrtlejma checkboxama.....v konzoli na stránce s php nebylo nic
    ... odesíláš z jedné stránky která volá soubor a čekáš, že v druhém, nezávisle otevřeném v névém tabu, se něco projeví? A pak čekáš, že JS na stránce s HTML se projeví na stránce pouze PHP bez JS?

    heh, kdo by to řekl, že ...

    ve foreach v tom tabu s PHP nemáš data, LOGICKY, protože je volá a zpracovává ten tab s HTML a JS

    To co jsem sepsal ti ukáže PHP výpis v konzoli v tom tabu s HTML ...

  14. No já to nečekal, já jsem to vzal jak jste mi to popsal a jak jsem to z toho pochopil..... ani v druhé konzoli nic nebylo na stránce s formulářem....a s tou funkcí v ajaxu...

    ---------- Příspěvek doplněn 10.11.2018 v 16:00 ----------

    Jediný co mi to ukáže jsou tyhle testovací kody na výpisy pole a true při odeslání formuláře...



    Kód:
    
    
    $("#gdpr").bind("click", function() {
            if($(this).is(":checked")) {
              submitForm();
              
             $("#gdpr").attr("disabled", true); 
             
               console.log("true");
            } else {
              formError(); 
               console.log("false");
            }
        });  
       
    
    $(".cGroup").bind("click", function() {
            if($(this).is(":checked")) {
              
           
      var arr = $("input[name='cGroup[]']").map(function(){
      return $(this).val();
    }).get();
    
    
    var test = $("input[name='cGroup[]']").map(function(){ return $(this).val(); }).get().join(",");
    
    
          var data = { "cGroup[]" : []};
            $(".cGroup:checked").each(function() {
           data["cGroup[]"].push($(this).val());
           });
    
    console.log(arr);
    
    console.log(data);
    
    console.log(test);        
            
            } else {
            
               console.log("false");
            }
        });  
       
    
    
       
    
    
    
    
    
    
    
    
    
    function submitForm(){
      
    
    
        var data = { "cGroup[]" : []};
            $(".cGroup:checked").each(function() {
           data["cGroup[]"].push($(this).val());
           });
      
      
      
      
         $.ajax({
            type: "POST",
            url: "/php/form-process.php",
            data:{ "data" : data  },
            success : function( returnData ){
                console.log( returnData );
            }
        });
        
        
      
     
    }
    
    
    
     });

  15. Nějaká domena, kde to je vidět? To by bylo krapet jednodušší v odhalování chyb ...

  16. Citace Původně odeslal Doctore97 Zobrazit příspěvek
    Nějaká domena, kde to je vidět? To by bylo krapet jednodušší v odhalování chyb ...
    ostrou verzi dát nemohu...musel bych to nějkam přehodit na testovací, ale večer přijde možná kamarád....
    Takhle vypadá v konzoli...když kliknu na dvě pole....
    {
    "cGroup[]": [
    "Běžný účet",
    "Výběr z bankomatů"
    ]
    }

    pomocí tohoto:

    Kód:
    var data = { "cGroup[]" : []};
            $(".cGroup:checked").each(function() {
           data["cGroup[]"].push($(this).val());
           });
    a tady při zaškrtnutí checkboxu s podmínkama se to jednou odešle...

    Kód:
    $("#gdpr").bind("click", function() {
            if($(this).is(":checked")) {
              submitForm();
              
             $("#gdpr").attr("disabled", true); 
             
               console.log("true");
            } else {
              formError(); 
               console.log("false");
            }
        });
    Co tady v tomto případě zastupuje...returnData ?

    Kód:
     success : function( returnData ){
                console.log( returnData );
            }
        });
    returnData jsou Data, už vim...

  17. 1. JS odesílá data v proměnná "data" skrze POST do PHP souboru
    2. PHP soubor je přijde => pokud ho otevřeš v prohlížeči jen tak, nemá data a tudíž print_r(); na ten $_POST se ti nevypíše

    A teď jsem si všiml, že ty si pojmenoval v tom AJAX proměnnou "data"

    Kód:
    $.ajax({
            type: "POST",
            url: "/php/form-process.php",
            data:{ "data" : data  }, // ZDE TA PROMĚNNÁ SE JMENUJE "data"
            success : function( returnData ){
                console.log( returnData );
            }
        });
    A pak v PHP vypisuješ "$_POST['cGroup']" ... což nemůže fungovat. Prostě všechno špatně. Buď si zjisti jak funguje JS (nauč se, nějak) nebo k tomu někoho pusť. Děláš tam pátý přes devátý a vracíš se k jedničce a divíš se, že ti to nevypisuje trojku ...

    Ten muj kud, konkrétně proměnná "returnData" ti vráti to, co ti obyčejně vypíše prohlížeč, akorát do konzole, protože vše zpracovává JS, takže si to do JS taky musíš nechat vypsat. Ukázka zde - https://www.sitepoint.com/demos/ajax/, uče se ...

  18. pořád se učím i teď se učím..hledal jsem to zapojení v mnoha návodech, ale ani jeden nefunguje...našel jsem několik způsobů zapojení... různě jsem je vyzkoušel viz zde: var data vypisuje object s polem podle toho jak je zaškrtlé.... tohle je všechno na multicheckbox....co jsem našel.... takže co tam správně patří ? Když to tedy víte nemáte někde uložené, funkční zapojení na multicheckboxy ?

    Kód:
    $(".cGroup").bind("click", function() {
            if($(this).is(":checked")) {
              
           
      var arr = $("input[name='cGroup[]']").map(function(){
      return $(this).val();
    }).get();
    
    
    var test = $("input[name='cGroup[]']").map(function(){ return $(this).val(); }).get().join(",");
    
    
          var data = { "cGroup[]" : []};
            $(".cGroup:checked").each(function() {
           data["cGroup[]"].push($(this).val());
           });
    
    console.log(arr);
    
    console.log(data);
    
    console.log(test);        
            
            } else {
            
               console.log("false");
            }
        });

  19. Ale tady o tohle nejde.

    1. mám chechboxy, ten uložím do proměnné ... což dle slov máš (ten kod nemohu vyzkoušet)
    2. tu proměnnou odesíláš tím AJAXem
    3. tu proměnnou v PHP vypíšeš

    Tak složitý to není, ale musíš to pochopit, ne jen slepě opisovat. Koukni na ten odkaz, co jsem poslal a vyzkoušet sprovoznit. Až to bude fungovat, pochop to. Až to pochopíš, tu svou chybu opravíš hned.

    Problém nastává, když vezmeš zakázku na kterou nemáš. Chápu, dobře se na tom učí, ale musíš mít základy, který ti chybí ... vypiš poptávku na webtrhu ... bude to nejjednodušší. Nebo si někoho najmi, ať ti občas pomůže / poradí. Což jsem ti kdysi navrhoval a očividně se ti do toho moc nechce.

Hostujeme u Server powered by TELE3