Ga naar inhoud

Welkom op PC Helpforum!
PC Helpforum helpt GRATIS computergebruikers. Ons team geeft via het forum professioneel antwoord op uw vragen en probeert uw pc problemen zo snel mogelijk op te lossen.

Word lid vandaag, plaats je vraag online en het PC Helpforum-team helpt u graag verder!


kunoke

Checkbox in form geeft geen data door naar php script dus komt niet in database.

Aanbevolen berichten

Beste, Al een tijd ben ik bezig met het maken van een reisbenodigdheden systeem,

Ik heb: Een database waarin alles wat ik moet meenemen wordt bijgehouden en of ik het wel heb, Een tabel waarin alle items worden verschenen, Een tabel waarin alle items die bij oke een 0 of iets zouden verschijnen en een systeem waarin ik items kan toevoegen, Het aanvinken van een item komt later!

Een voorbeeld van die database,

Tabel: Krokus

Item (Hier komt de itemnaam) Oke(Hier komt een 0 of niets als het niet op voorraad is en een 1 als het er wel is)

 

Het gene waar ik al een tijdje mee vast loop is die form waarin ik items kan toevoegen.

Daarin heb ik een textbox waarin ik een Item kan in typen en een checkbox waarin ik kan aanvinken of ik het al heb en de submit button.

Het werkt half!

De het itemnaam wat ik in heb getypt komt in de database en dus verschijnt in te tabbellen

Maar of ik nu de checkbox aanvink of niet die stuurt geen data door naar het script.

Wat die zou moeten doen is: als die uitgevinkt is en de form wordt verzonden: een 0 verzenden en als die aangevinkt is een 1 verzenden

En omdat het script die nul of die een niet krijgt verschijnt er dus bij de database enkel de itemnaam en bij oke geen 0 of 1 wat dus wel moet gebeuren.

 

Ik heb alles al geprobeerd: De value bij die input aanpassen, een isset te maken,... maar niets helpt

Er blijft in de database bij oké niets verschijnen.

Zou iemand misschien de oplossing weten?

Hieronder vind je de code:

Uit veligheid heb ik even mijn database gegevens weggehaald

En het design is op dit moment raar maar dat wil ik pas na al die scripts doen!

Dit is de index, Die checkbox vind je waar <!Hier is de checkbox staat>

Onder de code heb je het script

Quote

<!DOCTYPE html>
<HTML>
    <!Titel>
    <title>Reisbenodigdheden</title>
    
    
<!Alle scripts ophalen>
<?php
require_once "scripts/script_all.php"
?>

<h2 style="text-align:center">Lightbox</h2>

<div class="row">
  <div class="column">
    <img src="img_nature.jpg" style="width:100%" onclick="openModal();currentSlide(1)" class="hover-shadow cursor">
  </div>
</div>
<div id="myModal" class="modal">
  <span class="close cursor" onclick="closeModal()">&times;</span>
  <div class="modal-content">

    <div class="mySlides">
      <div class="numbertext">1 / 4</div>
      <form action="insert.php" method="post">

    <p>

        <label for="Item">Item:</label>

        <input type="text" name="Item" id="Item">

    </p>

    <p>

        <label for="Oke">Toegevoegt?</label>

        <input type="checkbox" name="Oke" id="Oke" value="Yes" />

    </p>


    <input type="submit" value="Submit">

</form>
    </div>

    
    <a class="prev" onclick="plusSlides(-1)">&#10094;</a>
    <a class="next" onclick="plusSlides(1)">&#10095;</a>

    <div class="caption-container">
      <p id="caption"></p>
    </div>


    <div class="column">
      <img class="demo cursor" src="img_nature_wide.jpg" style="width:100%" onclick="currentSlide(1)" alt="">
    </div>
    <div class="column">
      <img class="demo cursor" src="img_fjords_wide.jpg" style="width:100%" onclick="currentSlide(2)" alt="Trolltunga, Norway">
    </div>
    <div class="column">
      <img class="demo cursor" src="img_mountains_wide.jpg" style="width:100%" onclick="currentSlide(3)" alt="Mountains and fjords">
    </div>
    <div class="column">
      <img class="demo cursor" src="img_lights_wide.jpg" style="width:100%" onclick="currentSlide(4)" alt="Northern Lights">
    </div>
  </div>
 
</div>
<!Responsive onderdeel
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">


<!Begin Elementen>
<body>


<!Design hele pagina>
    <div class="container flex-direction">
        
<!Alle Benodigdheden groep>
<div class="one">
<!Titel alle benodigdheden>
<h2 style="color: blue">Alle benodigdheden!</h2>


<!Script alle benodigdheden (Gaat verder zie lijn 7-10)>

<?php
echo new TableRows(new RecursiveArrayIterator($orm->get('SELECT item FROM Krokus')));
?>

</div>
<!Einde groep Vergeten benodigdheden>

<!Vergeten Items Groep>
<div class="two">
<!Titel vergeten items>
<h2 style="color: red">Vergeet deze items niet!</h2>

<!Begin script vergeten items zie lijn 7-10>
<?php
echo new TableRows(new RecursiveArrayIterator($orm->get("SELECT item FROM Krokus WHERE Oke = 0")));
?>

</div>
<!Einde groep Vergeten benodigdheden>
</div>
<!Einde design hele pagina>
</body>
<!Einde Lichaamselementen>

<!Ophalen van de opmaak bestanden (css)>
<STYLE>
//Begin lightbox css
body {
  font-family: Verdana, sans-serif;
  margin: 0;
}

* {
  box-sizing: border-box;
}

.row > .column {
  padding: 0 8px;
}

.row:after {
  content: "";
  display: table;
  clear: both;
}

.column {
  float: left;
  width: 25%;
}

/* The Modal (background) */
.modal {
  display: none;
  position: fixed;
  z-index: 1;
  padding-top: 100px;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: black;
}

/* Modal Content */
.modal-content {
  position: relative;
  background-color: #fefefe;
  margin: auto;
  padding: 0;
  width: 90%;
  max-width: 1200px;
}

/* The Close Button */
.close {
  color: white;
  position: absolute;
  top: 10px;
  right: 25px;
  font-size: 35px;
  font-weight: bold;
}

.close:hover,
.close:focus {
  color: #999;
  text-decoration: none;
  cursor: pointer;
}

.mySlides {
  display: none;
}

.cursor {
  cursor: pointer
}

/* Next & previous buttons */
.prev,
.next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -50px;
  color: white;
  font-weight: bold;
  font-size: 20px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
  -webkit-user-select: none;
}

/* Position the "next button" to the right */
.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

/* On hover, add a black background color with a little bit see-through */
.prev:hover,
.next:hover {
  background-color: rgba(0, 0, 0, 0.8);
}

/* Number text (1/3 etc) */
.numbertext {
  color: #f2f2f2;
  font-size: 12px;
  padding: 8px 12px;
  position: absolute;
  top: 0;
}

img {
  margin-bottom: -4px;
}

.caption-container {
  text-align: center;
  background-color: black;
  padding: 2px 16px;
  color: white;
}

.demo {
  opacity: 0.6;
}

.active,
.demo:hover {
  opacity: 1;
}

img.hover-shadow {
  transition: 0.3s
}

.hover-shadow:hover {
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
}
//einde lightbox css
.container{
  display:inline-flex;
  flex-wrap:wrap;
  border:0px solid ;
}
.flex-direction{
  flex-direction:row;
}
.one{
  border-right:0px solid;
  width:200px;
  height:1200px;
}

.two{
  right: 200px;
  width:200px;
  height:1200px;
}

span{
  font-size:16px;
    font-weight:bold;
    display: block;
    line-height: 132px;
    text-align: center;
}

@media screen and (max-width: 150px) {
  .flex-direction{
  flex-direction:column;
  }
.one{
  width:202px;
  height:1200px;
  border-right:none;
  border-bottom:1px solid ;
  }
  .two{
    width:202px;
    height:1200px;
  }
  .two span{
    line-height:107px;
  }

}
</STYLE>
  <script>
function openModal() {
  document.getElementById('myModal').style.display = "block";
}

function closeModal() {
  document.getElementById('myModal').style.display = "none";
}

var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides(slideIndex += n);
}

function currentSlide(n) {
  showSlides(slideIndex = n);
}

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("demo");
  var captionText = document.getElementById("caption");
  if (n > slides.length) {slideIndex = 1}
  if (n < 1) {slideIndex = slides.length}
  for (i = 0; i < slides.length; i++) {
      slides.style.display = "none";
  }
  for (i = 0; i < dots.length; i++) {
      dots.className = dots.className.replace(" active", "");
  }
  slides[slideIndex-1].style.display = "block";
  dots[slideIndex-1].className += " active";
  captionText.innerHTML = dots[slideIndex-1].alt;
}
</script>

</HTML>

Hier vind je nog het script dat bij de form hoort

Quote

<?php

    /* Attempt MySQL server connection. Assuming you are running MySQL

    server with default setting (user 'root' with no password) */

    $link = mysqli_connect("localhost", "Weg", "Weg", "Weg");
 

// Check connection

if($link === false){

    die("ERROR: Could not connect. " . mysqli_connect_error());

}

 

// Escape user inputs for security

$Item = mysqli_real_escape_string($link, $_REQUEST['Item']);
$oke = mysqli_real_escape_string($link, $_REQUEST['oke']);


 

// attempt insert query execution

$sql = "INSERT INTO Krokus (Item, Oke) VALUES ('$Item', '$oke')";

if(mysqli_query($link, $sql)){

    echo "De items zijn successvol toegevoegd";
    print_r($_POST["oke"]);

} else{

    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);

}

 

// close connection

mysqli_close($link);

?>

Zou iemand misschien weten waarom die checkbox niet werkt?

En er mee kunnen helpen

Alvast bedankt,

Met vriendelijke groet,

Kuno Claes

P.S: Ik wil niet moeilijk doen maar ik ben 13 jaar en doe dit vooral als hobby dus probeer alstublieft te zeggen waar ik precies iets moet aanpassen of de juiste code geven.

Deel dit bericht


Link naar bericht
Delen op andere sites

Hier is in principe niets mis mee, alleen de werking van een checkbox is anders dan alle andere elementen.

Wanneer een checkbox NIET is aangevinkt, zal deze niet in de $_POST of $_REQUEST data zitten. Is deze WEL aangevinkt, zal deze de waarde krijgen die je bij 'value' hebt aangegeven, of als je geen 'value' bij de checkbox hebt opgegeven zal hij de waarde 'on'  krijgen. 

 

Bovendien moet je ook kijken wat voor database veld-type je hebt gebruikt voor de betreffende kolom. Is dat een varchar, boolean of tinyint, dan is de waarde die je moet opgeven erg anders.

 

De onderstaande regel is dus eigenlijk niet compleet.

$oke = mysqli_real_escape_string($link, $_REQUEST['oke']);

 

Als je een varchar of tinyint hebt gebruikt (tinyint voor aan/uit is beter!), dan moet die regel zoiets worden: 

 

$oke = isset($_REQUEST['oke']) ? 1 : 0;
$oke = mysqli_real_escape_string($link, $oke);

De eerste regel is een one-liner voor een if-statement.  In dit geval zal de waarde 1 zijn in de database als je de checkbox aanvinkt, en 0 als je hem uitgevinkt laat.

Wil je daar wat anders, bijv: "YES" voor aangevinkt en "NO" voor uitgevinkt, dan moet het zoiets zijn: 

 

$oke = isset($_REQUEST['oke']) ? "YES" : "NO";
$oke = mysqli_real_escape_string($link, $oke);

 

Wil je de value van de checkbox overnemen als deze is aangevinkt dan wordt het zoiets:

 

$oke = isset($_REQUEST['oke']) ? $_REQUEST['oke'] : 0;
$oke = mysqli_real_escape_string($link, $oke);

 

 

PS: een one-liner if statement volgt deze structuur:

 

$result = [statement] ? [result when statement = true] : [result when statement = false];

Je ziet ook dat je dan ook geen if() meer typt. Maar alleen wat er tussen de haakjes staat. Staan er 2 if-statements, dan zet je die nog wel rond haakjes zoals dit: 

$result = (isset($_REQUEST['oke']) && isset($_REQUEST['fale']) ? "yes" : "no";

 

Deel dit bericht


Link naar bericht
Delen op andere sites

  • Welkom op PC Helpforum

  • Leden statistieken

    • Aantal leden
      39.645
    • Meeste online
      1.765

    Nieuwste lid
    Gerald Bostock
    Registratiedatum
  • Gerelateerde inhoud

    • Door kunoke
      Hallo, Ik ben al een tijdje bezig met een soort cms.
      Ik heb nu een html admin panel template genomen. Daar heb ik zelf een login systeem voor gemaakt, die ziet er als volgt uit: Een login pagina waar je de gegevens in typt, na die form op de  login pagina komt een script die de gebruikersnaam en wachtwoord controleerd met de gebruikersnaam en geëncrypte wachtwoord in de database dan als dat allemaal goed is dan maakt die een sessie aan. Die sessie bevat wat variabelen: Het id van de gebruiker en de naam van de gebruiker. Vervolgens word de gebruiker naar het admin paneel doorverbonden eenmaal op de eerste pagina van het admin paneel controleert die pagina of er een active sessie is en haalt die de variabelen op indien er geen actieve sessie is word die weer geredirect naar de login pagina. Het gene wat ik wil maken is dat  de met jQuery slider versleepbare panelen automatisch worden opgeslagen d.m.v het php variabele met het id van de user zodat die weet bij wie en  een aparte rij. Zodat als die gebruiker een paneel versleept en die herlaad of bezoekt de pagina opnieuw dat dit word weergegeven in die volgorde hoe hij het had gezet.
      Kan iemand mij daar bij helpen.
      Zelf kon ik niets op internet vinden.
      Alvast bedankt
      Met vriendelijke groet,
      Kuno Claes
    • Door kunoke
      Hallo, Ik ben al een tijd bezig om voor het bedrijf een promotie lijst te maken in een website. Echter is dit niet zo te maken, Alleen hij wil makkelijk zelf items kunnen toevoegen. Nu dacht ik aan een MySQL database waarin je de volgende kolommen hebt, Productnaam, Link naar foto, Product speceficaties, productbeschrijving, normale prijs en Promotie prijs en dan zou die site moeten gaan kijken via php naar die database, Om zo die data op te vragen. Als ik het wil maken wil ik wel dat de code zich door genereert dat de persoon die er makkelijker items aan wil toevoegen niet aan mij zou moeten vragen om de code te editen. Zou iemand me kunnen helpen met het maken van zo een php script?
      Alvast bedankt,
      Met vriendelijke groet,
      Kuno Claes
      P.S: Je kan op de volgende site een voorbeeld zien van hoe het design er moet komen uit te zien: https://elektro-meeus.be/page.html
    • Door kunoke
      Beste, Zou iemand me kunnen helpen met het opbouwen van een php code voor de antwoorden van forms in html te registreren in een MySQL database?
       
      Alvast Bedankt,
      Met vriendelijke groet,
      Kuno Claes
    • Door kunoke
      Beste, Al een tijd ben ik bezig met data van een mysql database te verschijnen in php (HTML) dat lukt.
      Nu wil ik iets maken dat je een tabel hebt waar data van een database word verschenen en daaronder is nog een tabel en die verschijnt alle inhoud waar in de rij oke iets 0 bevat.
      Dus ik wil twee tabellen hebben waar alle bij de data van een database word verschenen.
      Maar dat werkt niet.
      Een tegelijk wel!
      Als ik een verbinding maak met een database en een tabel laat komen met daarin SELECT Item from Krokus werkt het. Wil ik alle items weergeven waar de rij oke 0 bevat doe ik: SELECT Item where oke LIKE 0 .
      Dan krijg ik ook alles waar ik om vroeg.
      Maar wil ik de 2 tegelijk in de pagina zetten werkt dat niet (HTTP ERROR 500 of soms een witte pagina)
      Ik heb alles al geprobeerd, Php opnieuw eindigen en beginnen 2 MYSQL connecties, 1 mysql connectie niks werkt
      In het kort de bedoeling is dat de onderstaande codes die inhoud weergeven in een pagina moeten komen!
      Ik zal hieronder de code laten zien:
      Als ik alle items die ik heb wil zien: (Werkt)
      Als ik alle items wil zien waar bij oke 0 staat (Werkt)
      Kan iemand me bij dit helpen?
      Alvast bedankt,
      Met Vriendelijke Groet,
      Kuno Claes
      P.S: Sorry al ik het een beetje ingewikkeld uitleg, Ik ben daar niet de beste in
Logo

OVER ONS

PC Helpforum helpt GRATIS computergebruikers sinds juli 2006. Ons team geeft via het forum professioneel antwoord op uw vragen en probeert uw pc problemen zo snel mogelijk op te lossen. Word lid vandaag, plaats je vraag online en het PC Helpforum-team helpt u graag verder!

×
×
  • Nieuwe aanmaken...