DerKleene1
Mitglied
Ich habe oben nun mal einen Text leeren hinzugefügt, der in der DB alle aktiv auf 0 setzt.
Diese kannst Du durch ein Image ersetzen wenn Du willst.
Wichtig ist dabei das es dabei die id="leeren" hat, denn darauf reagiert das OnClick.
(Kannst DU natürlich umbenennen, dann aber auch im JS Teil).
Ich poste nun noch mal, wie es momentan bei mir ist,
wo auch funktioniert, das er die Farben entsprechend setzt, wenn man die Seite neu lädt.
HTML & JS Teil da ich dies nicht getrennt habe, zum testen:
der PHP-Teil:
Hier hat sich einiges geändert. Vor allem die Variable $load hat nun verschiedene Werte,
damit per Ajax das richtige angesprungen wird. (load:1 beim Seite laden, load:2 bei alles leeren).
Wenn load nicht gesetzt wird springt er in den else Teil, was dafür zuständig ist, beim Zellen klick die Farbe zu setzen, und den Eintrag in die DB zu machen, damit bei einem reload oder auch wenn man die Seite später aufruft, die Felder so weiterhin markiert sind.
Diese kannst Du durch ein Image ersetzen wenn Du willst.
Wichtig ist dabei das es dabei die id="leeren" hat, denn darauf reagiert das OnClick.
(Kannst DU natürlich umbenennen, dann aber auch im JS Teil).
Ich poste nun noch mal, wie es momentan bei mir ist,
wo auch funktioniert, das er die Farben entsprechend setzt, wenn man die Seite neu lädt.
HTML & JS Teil da ich dies nicht getrennt habe, zum testen:
HTML:
<html>
<head>
<title>Test</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<table width="90%" border="1">
<tr>
<td colspan="7" style="color:black; text-align:right; font-size:12px;" height="30px">
Zahlen entfernen <span id="leeren" class="glyphicon glyphicon-trash" style="color:red;">Leeren</span></a>
</td>
</tr>
<tr>
<td class="td_ent" id="Zahl1" data-highlight="1">1</td>
<td class="td_ent" id="Zahl2" data-highlight="2">2</td>
<td class="td_ent" id="Zahl3" data-highlight="3">3</td>
<td class="td_ent" id="Zahl4" data-highlight="4">4</td>
<td class="td_ent" id="Zahl5" data-highlight="5">5</td>
<td class="td_ent" id="Zahl6" data-highlight="6">6</td>
<td class="td_ent" id="Zahl7" data-highlight="7">7</td>
</tr>
</table>
</body>
<script type="text/javascript">
$( document ).ready(function() {
//Ajax beim Seite laden
$.ajax({
type: "POST",
url: "test.php",
data: {
load: 1
},
dataType: 'json',
cache: false,
success: function(content) {
var cnt = Object.keys(content).length;
while(cnt > 0){
cnt = cnt -1;
if(content[cnt].aktiv == 1){
$('[data-highlight='+content[cnt].lottozahl+']').css('backgroundColor', "rgb(255, 255, 255)");
}else{
$('[data-highlight='+content[cnt].lottozahl+']').css('backgroundColor', "rgb(192, 192, 192)");
}
}
}
});
//Ajax für DB Eintrag
$('#leeren').on('click', function() {
$.ajax({
type: "POST",
url: "test.php",
data: {
load: 2
},
success: function(content) {
location.reload();
}
});
});
//Klick auf Zelle dieses ausführen
$('.td_ent').on('click', function() {
var bgcolor = $(this).css('backgroundColor');
var lottozahl = $(this).data("highlight");
var aktiv = 0;
//Farbwechsel
if(bgcolor === 'rgb(192, 192, 192)'){
$(this).css('backgroundColor', "rgb(255, 255, 255)");
aktiv = 1;
}else{
$(this).css('backgroundColor', "rgb(192, 192, 192)");
aktiv = 0;
}
//Ajax für DB Eintrag
$.ajax({
type: "POST",
url: "test.php",
data: {
aktiv: aktiv,
lottozahl: lottozahl
},
success: function(content) {
}
});
});
});
</script>
</html>
PHP:
<?php
$mysqli = new mysqli("localhost", "root", "root", "testen");
if ($mysqli->connect_errno) {
die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
}
if (isset($_POST["load"]) && !empty($_POST["load"])) $load = $_POST["load"];
if($load == 1){
$sql = "SELECT lottozahl, aktiv FROM lottozahlen";
$statement = $mysqli->prepare($sql);
$statement->execute();
$result = $statement->get_result();
$i=0;
while($row = $result->fetch_object()) {
$array_ergebnis[$i]['lottozahl'] = "$row->lottozahl";
$array_ergebnis[$i]['aktiv'] = "$row->aktiv";
$i++;
}
echo json_encode($array_ergebnis);
exit();
}elseif($load == 2){
$sql = "UPDATE lottozahlen SET aktiv = 0";
$statement = $mysqli->prepare($sql);
if(!$statement->execute()) {
echo "Query fehlgeschlagen: ".$statement->error;
}
exit();
}else{
$sql = "UPDATE lottozahlen SET aktiv = ? WHERE lottozahl = ?";
$statement = $mysqli->prepare($sql);
$statement->bind_param('si', $aktiv, $lottozahl);
$aktiv = $_POST['aktiv'];
$lottozahl = $_POST['lottozahl'];
if(!$statement->execute()) {
echo "Query fehlgeschlagen: ".$statement->error;
}
}
damit per Ajax das richtige angesprungen wird. (load:1 beim Seite laden, load:2 bei alles leeren).
Wenn load nicht gesetzt wird springt er in den else Teil, was dafür zuständig ist, beim Zellen klick die Farbe zu setzen, und den Eintrag in die DB zu machen, damit bei einem reload oder auch wenn man die Seite später aufruft, die Felder so weiterhin markiert sind.