Hallo programmeurs,

Ik probeer een star rating system goed in elkaar te zetten maar het lukt mij niet.
Ik heb de volgende code gebruikt:


<style>
.star-rating {
  font-size: 0;
  white-space: nowrap;
  display: inline-block;
  width: 250px;
  height: 50px;
  overflow: hidden;
  position: relative;
  background: url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cG9seWdvbiBmaWxsPSIjREREREREIiBwb2ludHM9IjEwLDAgMTMuMDksNi41ODMgMjAsNy42MzkgMTUsMTIuNzY0IDE2LjE4LDIwIDEwLDE2LjU4MyAzLjgyLDIwIDUsMTIuNzY0IDAsNy42MzkgNi45MSw2LjU4MyAiLz48L3N2Zz4=');
  background-size: contain;
}
.star-rating i {
  opacity: 0;
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 20%;
  z-index: 1;
  background: url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cG9seWdvbiBmaWxsPSIjRkZERjg4IiBwb2ludHM9IjEwLDAgMTMuMDksNi41ODMgMjAsNy42MzkgMTUsMTIuNzY0IDE2LjE4LDIwIDEwLDE2LjU4MyAzLjgyLDIwIDUsMTIuNzY0IDAsNy42MzkgNi45MSw2LjU4MyAiLz48L3N2Zz4=');
  background-size: contain;
}
.star-rating input {
  -moz-appearance: none;
  -webkit-appearance: none;
  opacity: 0;
  display: inline-block;
  width: 20%;
  height: 100%;
  margin: 0;
  padding: 0;
  z-index: 2;
  position: relative;
}
.star-rating input:hover + i,
.star-rating input:checked + i {
  opacity: 1;
}
.star-rating i ~ i {
  width: 40%;
}
.star-rating i ~ i ~ i {
  width: 60%;
}
.star-rating i ~ i ~ i ~ i {
  width: 80%;
}
.star-rating i ~ i ~ i ~ i ~ i {
  width: 100%;
}
.choice {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  text-align: center;
  padding: 20px;
  display: block;
}
*,
::after,
::before {
  height: 100%;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  text-align: center;
  vertical-align: middle;
}
body {
  font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
}
body::before {
  height: 100%;
  content: '';
  width: 0;
  background: red;
  vertical-align: middle;
  display: inline-block;
}
</style>
<script type="text/javascript">
$(':radio').change(
  function(){
    $('.choice').text( this.value + ' stars' );
  } 
)
</script>
<form action="index.php" method="POST">
    <input type="submit">
<span class="star-rating">
  <input type="radio" name="waardering" value="1"><i></i>
  <input type="radio" name="waardering" value="2"><i></i>
  <input type="radio" name="waardering" value="3"><i></i>
  <input type="radio" name="waardering" value="4"><i></i>
  <input type="radio" name="waardering" value="5"><i></i>
</span><Br>
<span class="star-rating">
  <input type="radio" name="goed" value="1"><i></i>
  <input type="radio" name="goed" value="2"><i></i>
  <input type="radio" name="goed" value="3"><i></i>
  <input type="radio" name="goed" value="4"><i></i>
  <input type="radio" name="goed" value="5"><i></i>
</span><br>
<span class="star-rating">
  <input type="radio" name="slecht" value="1"><i></i>
  <input type="radio" name="slecht" value="2"><i></i>
  <input type="radio" name="slecht" value="3"><i></i>
  <input type="radio" name="slecht" value="4"><i></i>
  <input type="radio" name="slecht" value="5"><i></i>
</span><br>
    </form>
<strong class="choice">Choose a rating</strong>

<?php
   print_r($_POST);
?>


Het design is best irritant en ik moet helemaal nog ombouwen voor mysql, maar hij herkent de post niet.
Weet een van jullie misschien de oplossing? Of een makkelijkere / betere die al voor mysql is?
Als je de afbeelding zou kunnen uploaden kan ik even kijken wat er precies verkeerd gaat. Ik heb geen idee welke afbeelding je gebruikt namelijk.
Het plaatje is niet het probleem, die weergeeft hij gewoon.
Het probleem is hem dat hij de submit knop niet accepteert.
Maar weet jij misschien een makkelijkere/betere/snellere oplossing?
<input type="submit"> name vergeten in te vullen?
Name is niet verplicht ook geprobeerd maar hoort niks uit te maken, en dat maakte ook niks uit
Inputs in een form kunnen niet de zelfde naam hebben daar gaat het fout nu.

zo zou het moeten werken:


<form action="index.php" method="POST">
    <input type="submit">
<span class="star-rating">
<fieldset>
  <input type="radio" name="waardering" value="1"><i></i>
  <input type="radio" name="waardering" value="2"><i></i>
  <input type="radio" name="waardering" value="3"><i></i>
  <input type="radio" name="waardering" value="4"><i></i>
  <input type="radio" name="waardering" value="5"><i></i>
</fieldset>
</span><Br>
<span class="star-rating">
<fieldset>
  <input type="radio" name="goed" value="1"><i></i>
  <input type="radio" name="goed" value="2"><i></i>
  <input type="radio" name="goed" value="3"><i></i>
  <input type="radio" name="goed" value="4"><i></i>
  <input type="radio" name="goed" value="5"><i></i>
</fieldset>
</span><br>
<span class="star-rating">
<fieldset>
  <input type="radio" name="slecht" value="1"><i></i>
  <input type="radio" name="slecht" value="2"><i></i>
  <input type="radio" name="slecht" value="3"><i></i>
  <input type="radio" name="slecht" value="4"><i></i>
  <input type="radio" name="slecht" value="5"><i></i>
</fieldset>
</span><br>
    </form>
<strong class="choice">Choose a rating</strong>
Zo werkt die wel hoor....



<form action="rating.php" method="POST">
<span class="star-rating">
  <input type="radio" name="waardering" value="1"><i></i>
  <input type="radio" name="waardering" value="2"><i></i>
  <input type="radio" name="waardering" value="3"><i></i>
  <input type="radio" name="waardering" value="4"><i></i>
  <input type="radio" name="waardering" value="5"><i></i>
</span><Br>
<span class="star-rating">
  <input type="radio" name="goed" value="1"><i></i>
  <input type="radio" name="goed" value="2"><i></i>
  <input type="radio" name="goed" value="3"><i></i>
  <input type="radio" name="goed" value="4"><i></i>
  <input type="radio" name="goed" value="5"><i></i>
</span><br>
<span class="star-rating">
  <input type="radio" name="slecht" value="1"><i></i>
  <input type="radio" name="slecht" value="2"><i></i>
  <input type="radio" name="slecht" value="3"><i></i>
  <input type="radio" name="slecht" value="4"><i></i>
  <input type="radio" name="slecht" value="5"><i></i>
</span><br>
    <input type="submit">
</form>
<strong class="choice">Choose a rating</strong>

<?php
print_r($_POST);
?>
Het werkt, het probleem was:
<strong class="choice">Choose a rating</strong>


Die blokeerde de submit knop
Je zult wel eerst zeker moeten zijn dat er ge-submitted is. Daarom is een controle met dit geen overbodigheid:

<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
?>

Reageren