Code:
<?php
if($enabled == '1'){
$tablica .= '<input type="image" onclick="updateToggle(this, ' .$row["sifra"] . ');" src="status-toggle_enabled.jpg" border="0" name="enabled" value="1"/>';
}else{
$tablica .= '<input type="image" onclick="updateToggle(this,' . $row["sifra"] . ');" src="status-toggle_disabled.jpg" border="0" name="enabled" value="0"/>';
}
<?php
if($enabled == '1'){
$tablica .= '<input type="image" onclick="updateToggle(this, ' .$row["sifra"] . ');" src="status-toggle_enabled.jpg" border="0" name="enabled" value="1"/>';
}else{
$tablica .= '<input type="image" onclick="updateToggle(this,' . $row["sifra"] . ');" src="status-toggle_disabled.jpg" border="0" name="enabled" value="0"/>';
}
znači tu postavim sliku ovisno o vrijednosti varijable $enabled.
updateToggle izgleda ovako (updateToggle.php radi UPDATE statement u bazi):
Code:
<script type='text/javascript'>
function getXMLHTTPRequest() {
var req = false;
try {
/* for Firefox */
req = new XMLHttpRequest();
} catch (err) {
try {
/* for some versions of IE */
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (err) {
try {
/* for some other versions of IE */
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err) {
req = false;
}
}
}
return req;
}
function updateToggle(obj,id){
obj.style.backgroundColor = '#cc0000';
var updReq = getXMLHTTPRequest();
var url = 'updateToggle.php';
var vars = 'id='+id+'&value='+obj.value;
updReq.open('POST', url, true);
updReq.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
updReq.onreadystatechange = function() {//Call a function when the state changes.
if(updReq.readyState == 4 && updReq.status == 200) {
if(updReq.responseText == 'N'){
obj.style.backgroundColor = '#cc8800';
}else{
if(obj.value == '1'){
obj.value = '0';
}else{
obj.value = '1';
}
obj.src = updReq.responseText;
obj.style.backgroundColor = '#0000cc';
}
}
}
updReq.send(vars);
}
</script>
<script type='text/javascript'>
function getXMLHTTPRequest() {
var req = false;
try {
/* for Firefox */
req = new XMLHttpRequest();
} catch (err) {
try {
/* for some versions of IE */
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (err) {
try {
/* for some other versions of IE */
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err) {
req = false;
}
}
}
return req;
}
function updateToggle(obj,id){
obj.style.backgroundColor = '#cc0000';
var updReq = getXMLHTTPRequest();
var url = 'updateToggle.php';
var vars = 'id='+id+'&value='+obj.value;
updReq.open('POST', url, true);
updReq.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
updReq.onreadystatechange = function() {//Call a function when the state changes.
if(updReq.readyState == 4 && updReq.status == 200) {
if(updReq.responseText == 'N'){
obj.style.backgroundColor = '#cc8800';
}else{
if(obj.value == '1'){
obj.value = '0';
}else{
obj.value = '1';
}
obj.src = updReq.responseText;
obj.style.backgroundColor = '#0000cc';
}
}
}
updReq.send(vars);
}
</script>
Problem je u tome da ne reagira na prvi klik, tj. moram kliknuti dva puta na sliku da bi se izvršila promjena, za svaki slijedeći klik radi u redu, znači samo prvi puta moram kliknuti dva puta. Neki hint zašto se to događa?
F