Ik ben bezig met een systeem waarin meerdere gebruikers aan een draaiboek met daarin onderwerpen kunnen werken.
Nu is het niet de bedoeling dat als iemand in een onderwerp aan het werken is, iemand anders het onderwerp tegelijkertijd bewerkt.
Dan zou informatie verloren kunnen gaan.

Hoe kan ik ervoor zorgen dat maar een iemand tegelijkertijd een pagina (met daarin het formulier) kan bezoeken?
Ik ben iets verder, maar het werkt nog niet...
Ik wil alleen een itemID meesturen naar shared/blocktime.php

In de head van pagina.php staat:

<script>
			$(document).ready(function(){
function loadData(itemID) {
    $.ajax({
        url: "shared/blocktime.php",
        type: "POST",
        data: "{'itemID':'" + itemID+ "'}",
        cache: false,
        success: function(html){
            $(".result").empty().html(html);
                setTimeout(function () { 
                    loadData(username, time); 
                }, 30000);
            },
        error:function (xhr, ajaxOptions, thrownError){
            $(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
        }    
    });
}
});
</script>


In shared/blocktime.php staat: (databaseconnectie is gemaakt in globals)

<?
include("includes/globals.php");
if(isset($_POST['itemID'])){
$itemID = $_POST['itemID'];
$blocktime = time();
$update_item = mysql_query("UPDATE items SET blocktime = '".$blocktime."' WHERE itemID ='".$itemID."'");
}
?>


Het werkt nog niet...
Volgens mij moet ik de Ajax oproepen, maar hoe?
Heb je gecontroleerd of itemID niet leeg is? 'Het werkt niet' is niet duidelijk genoeg. Geef foutmeldingen mee of leg uit waar het fout gaat.
Er komt geen itemID aan op blocktime.php omdat ik die ergens moet meegeven.
Ik heb <script> in de head staan (zie post hierboven). Maar het lijkt me dat ik in de body ook een actie moet geven?
Want ergens moet ik de variabel $itemID instoppen....
Je moet loadData(itemID) aanroepen.
loadData(12345);
Ergens gaat het fout, maar ik weet niet waar... De post komt niet door.


<script>
            $(document).ready(function(){
function loadData(itemID) {
    $.ajax({
        url: "shared/blocktime.php",
        type: "POST",
        data: "{'itemID':'" + itemID+ "'}",
        cache: false,
        success: function(html){
            $(".result").empty().html(html);
                setTimeout(function () { 
                    loadData(username, time); 
                }, 30000);
            },
        error:function (xhr, ajaxOptions, thrownError){
            $(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
        }    
    });
}
});
</script>

<?
loadData($itemID);
?>


Of doe ik het zo helemaal fout? Alleen het itemID moet doorgepost worden.
Javascript is geen PHP ?
Maar ergens moet ik mijn variabel $itemID meesturen die via een $_GET wordt binnengehaald op pagina.php waarin het javascript staat.

<script>
$(document).ready(function(){
function loadData(itemID) {
    $.ajax({
        url: "shared/blocktime.php",
        type: "POST",
        data: "{'itemID':'" + itemID+ "'}",
        cache: false,
        success: function(html){
            $(".result").empty().html(html);
                setTimeout(function () { 
                    loadData(username, time); 
                }, 30000);
            },
        error:function (xhr, ajaxOptions, thrownError){
            $(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
        }    
    });
}
});

loadData(<?php echo $_GET['itemID']; ?>);

</script>

Hoe kan ik nu checken of de informatie wordt doorgepost naar shared/blocktime.php?
Want er wordt geen update gedaan in de database, db-connectie werkt...


<?
include("includes/globals.php");
if(isset($_POST['itemID'])){
$itemID = $_POST['itemID'];
$blocktime = time();
$update_item = mysql_query("UPDATE items SET blocktime = '".$blocktime."' WHERE itemID ='".$itemID."'");
}
?>
Werkte mijn oplossing?

Reageren