hatte hier gestern schon was gepostet - aber völlig anderer Ansatz. Ich finde Ajax passt hier ganz gut ... mein gestriges Problem war eher Oldschool. Also ...
Ich möchte ein kleines DB-Update-Script schreiben. Das ganze ist recht simple aber ich hänge an der Checkbox fest.
Folgendes ist geplant: Ich habe eine Datenbank mit Dateinamen. In der Datenbank hat jeder Dateiname eine "PlayCount" gesetzt. "Hab ich gesehen" (1) "Hab ich noch nicht gesehen" (NULL). Mein Script hat nun eine Eingabemaske für den Dateinamen. Ich gebe die ersten Buchstaben ein, es kommen Live die ersten Treffer.
Das klappt.
Jeder Treffer mit einer Checkbox ausgestattet. Diese Checkbox ist als "checked" markiert, wenn der Datensatz in der DB einen gültigen PlayCount hat.
Ich möchte also folgenden Endzustand haben:
Den letzten Dateinamen hab ich also bereits geschaut.Dateinamen: [ blablabla ]
Suchergebnisse
[ ] 1) blablabla
[ ] 2) blablablabluub
[x] 3) blubbblablabla
Jetzt soll folgendes passieren (so ein typisches Szenario):
Ich klicke den ersten Dateinamen an: x -> Update der DB (PlayCount=1), ich klicke den letzten Dateinamen an (den hab ich überhaupt nicht gesehen - war ein Fehler) -> Update der DB (PlayCount=0). Ohne reload etc. möchte ich jetzt doch noch mal den ersten Dateinamen ausXen (0) ... den hab ich auch nicht gesehen (manchmal sehr verwirrt *G*)
Und da hänge ich gerade.
Ich finde recht viel zu Checkboxen - allerdings verstehe ich das ganze nicht so recht. Ich bin froh das ich das Text-Eingabe-Snippet gefunden habe und nach meinen Bedürfnissen anpassen konnte. Bei Checkboxen bekomme ich gar nichts angepasst - da ist wohl ein grundsätzliches Verständnisproblem bei Ajax/jquery (vorallem jq...) vorhanden.
Ideen wie ich das umgesetzt bekomme?
Hier ein wenig Code (db-zeugs lass ich mal weg):
suche.php
Code: Alles auswählen
...sql...
while ->
<input type="checkbox" id="{$idFile}" $check>
<label for="title">{$strFilename}</label><br>
<- while
index.php
Code: Alles auswählen
<html>
<head>
<title>Suche</title>
<script type="text/javascript">
function searchFor(title){
var xmlHttp = null;
// Mozilla, Opera, Safari sowie Internet Explorer 7
if (typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
// Wenn das Objekt erfolgreich erzeugt wurde
if (xmlHttp) {
var url = "suche.php";
var params = "title="+title;
xmlHttp.open("POST", url, true);
//Headerinformationen für den POST Request
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
// Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben
document.getElementById("ergebnis").innerHTML = xmlHttp.responseText;
}
};
xmlHttp.send(params);
}
}
</script>
</head>
<body>
<input type="text" onkeyup="searchFor(this.value);"/>
<div id="ergebnis"></div>
</body>
</html>
Hab z.b. dieses hier gefunden:
Code: Alles auswählen
<script>
$(document).ready(function(){
$("input:checkbox").change(function() {
var isChecked = $("input:checkbox").is(":checked") ? 1:0;
$.ajax({
url: 'suche.php',
type: 'POST',
data: { strID:$("input:checkbox").attr("id"), strState:isChecked }
});
});
});
</script>
Danke schon mal
Grüße
Wuppi