Meddelande

Minska
No announcement yet.

Ja/Nej fråga

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Ja/Nej fråga

    Hej

    En nybörjarfråga

    Jag har precis börjat leka med JQuery på mina PHP produktioner tänkte bygga en Ja/Nej knapp/länk för ett forumlär.

    Den bakomliggande databasegenskapen är boolean och jag tänkte med ett hidden formfield ändra värdet till True/False med hjälp av JQuery.
    Du klickar på det synliga "JA" för att ändra till "NEJ" och reverserat.

    Är det ens möjligt? Någon som har en bra ide om hur det skulle se ut eller kan peka mig på en bra tutorial motsv.

    Tack på förhand!

    /J
    Med vänlig hälsning

    Clownen

  • #2
    Kod:
    <input type="button" data-value="true" value="Ja" />
    <input type="button" data-value="false" value="Nej" />    
    <input type="hidden" id="result" />
    
    $(function() {    
        $('button').on('click', function() {        
            $('result').val( $(this).attr('data-value') );
        });    
    });
    Nåt sånt kanske?

    Kommentera


    • #3
      [kod]<button name="ditt_namn" value="true">Ja</button>
      <button name="ditt_namn" value="false">Nej</button>[/kod]Om du vill slippa HTML5 data attribut på knapparna.

      och köra en toggle på om det skall visa ja eller nej knappen, annars kan du ju kolla på PHP om värdet på form datan är "Ja" så är det True annars alltid false.
      "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

      Kommentera


      • #4
        Jag tänkte mig en lösning med bara 1 knapp som byter värde och value när den trycks in.
        och ja, hämta aktuellt värde från databasen alt. defaultvärde behöver den också göra.
        Med vänlig hälsning

        Clownen

        Kommentera


        • #5
          När jag provade denna
          Kod:
          <button name="ditt_namn" value="true">Ja</button>
          <button name="ditt_namn" value="false">Nej</button>
          Om du vill slippa HTML5 data attribut på knapparna.

          och köra en toggle på om det skall visa ja eller nej knappen, annars kan du ju kolla på PHP om värdet på form datan är "Ja" så är det True annars alltid false.
          så körde den submit på hela formuläret istället.
          Testade i chrome
          Med vänlig hälsning

          Clownen

          Kommentera


          • #6
            fungera inte i alla versioner av IE den kommer inte snappa upp name på button elemenetet
            "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

            Kommentera


            • #7
              Fan Måste testa lite mer innan jag skriver något.
              Sätta in type="button" löste ju det problemet.
              Med vänlig hälsning

              Clownen

              Kommentera


              • #8
                voigtann1 skrev: Visa inlägg
                [kod]<button name="ditt_namn" value="true">Ja</button>
                <button name="ditt_namn" value="false">Nej</button>[/kod]Om du vill slippa HTML5 data attribut på knapparna.

                och köra en toggle på om det skall visa ja eller nej knappen, annars kan du ju kolla på PHP om värdet på form datan är "Ja" så är det True annars alltid false.
                och för att få till toggle så måste jag använda jQuery antar jag?
                Kan jag inte bara ha en knapp som jag kan ändra attribut på om ex. värdet är true tillbaka till false osv.?
                Med vänlig hälsning

                Clownen

                Kommentera


                • #9
                  du kan skriva det i ren JS om du vill det, men jag kan tycka detta låter/känns som en radio-knapp hade passat rätt bra in i detta läget (eller bara en checkbox)?
                  "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

                  Kommentera


                  • #10
                    Skulle gärna bara köra med en checkbox men när checkboxen är tom så kommer den inte med i $_POST från vilket jag bygger INSERT och UPDATE
                    Med vänlig hälsning

                    Clownen

                    Kommentera


                    • #11
                      fast det löser du ju på backend, om inte $_POST värdet finns så är värdet 'false' annars är $_POST värdet vad checkboxen är för värde ('true')
                      "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

                      Kommentera


                      • #12
                        http://php.voigt.se/sandbox/wf/Jester73/

                        och källkoden är:
                        [kod]<form method="post" action="index.php">
                        <input type="checkbox" value="true" name="ditt_namn">
                        <button type="submit">Skicka</button>
                        </form>

                        <?
                        echo "värdet är: " . ($_POST["ditt_namn"] == "true" ? "true" : "false");
                        ?>[/kod]
                        "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

                        Kommentera


                        • #13
                          Varför funkar det för dig och inte för mig

                          Problemet jag stötte på var att var checkboxen tom så fanns inte ens nyckeln till checkboxen i $_POST. Dvs hade jag klickat i den, uppdaterat databasen, och sedan klickat ur så hade värdet inte uppdaterats i databasen.

                          Skrev själv ut SQL satsen och då fanns inte den med i UPDATE strängen.
                          Med vänlig hälsning

                          Clownen

                          Kommentera


                          • #14
                            Jester73 skrev: Visa inlägg
                            Problemet jag stötte på var att var checkboxen tom så fanns inte ens nyckeln till checkboxen i $_POST. Dvs hade jag klickat i den, uppdaterat databasen, och sedan klickat ur så hade värdet inte uppdaterats i databasen.
                            Nej, precis om men om den inte finns så vet du ju att värdet skall vara false (eller vilket värde du vill) i-boys exempel gör det du vill om du skall lösa det med Jquery.
                            "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

                            Kommentera


                            • #15
                              Problemet är att SQL frågan byggs upp av de nycklar som skickas in
                              PHP-kod:
                              function rensaFormular($addons){
                                  
                              //Rensar bort formulärdata som inte skall läggas till databasen
                                  
                              foreach($_POST as $key=>$value){
                                      if (
                              substr_count($key"exc_",0)==0) {
                                             
                              $cvalues[$key]=$value;
                                      }  
                                  }
                                  
                              //Lägger till manuella värden från en array. array("Nyckel"=>Värde)
                                  
                              If (!empty($addons)){
                                      foreach (
                              $addons as $key1=>$value1){
                                          
                              $cvalues[$key1]=$value1;
                                      }    
                                  }
                                  return 
                              $cvalues;
                              }
                                  
                              //Skapa en INSERT från formulär
                              function buildSQLInsert($tabell,$adds){
                                  
                              $temp=rensaFormular($adds);
                                  
                              $n=array_keys($temp);
                                  
                              $v=array_values($temp);
                                  
                              $nyckel=implode(", ",$n);
                                  
                              $varde=implode("', '",$v);
                                  
                                  
                              $sqlQ="INSERT INTO $tabell ($nyckel) VALUES ('$varde')";
                                  return 
                              $sqlQ;
                              }

                              //Skapa en UPDATE från formulär
                              function buildSQLUpdate($tabell$urval){
                                  
                              $temp=rensaFormular("");
                                  while (list(
                              $key$val)=each($temp)){
                                      
                              $tmpvalues=$tmpvalues." ".$key."='".$val."', ";
                                  }
                                  
                              $tmpvalues=trim($tmpvalues);
                                  
                              $tmpvalues=substr($tmpvalues,0,strlen($tmpvalues)-1);
                                  
                              $sqlQ="UPDATE $tabell SET $tmpvalues $urval";
                                  return 
                              $sqlQ;

                              Men I-boys lösning borde kunna funka så här

                              Kod:
                              <input type="button" name="mittnamn" data-value="true" value="Ja" />
                              
                              $(function() {    
                                  $('button').on('click', function() {
                                    TESTA HÄR VILKET VÄRDE KNAPPEN HAR VID TRYCKNING. 
                                      $('mittnamn').val( $(this).attr('data-value') ); 
                                       $('mittnamn').val( $(Nej).attr('value') ); 
                                  });    
                              });
                              Märks hur bra jag är på jQuery va
                              Med vänlig hälsning

                              Clownen

                              Kommentera

                              Working...
                              X