Pagina tegelijkertijd bezoeken
Pagina: « vorige 1 2 3 4 volgende »
- Ariën - op 13/01/2016 17:26:42:
@Thomas: Ook include() geeft foutmeldingen als het pas niet klopt.
Een E_WARNING ja, en alleen als het melden + weergeven van fouten aan staat.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
error_reporting(E_ALL);
$itemID= '17';
echo $itemID;
?>
<script type="text/javascript">var itemID= '<?php echo $itemID; ?>';</script>
<script>
$(document).ready(function(){
loadData(itemID);
function loadData(id) {
$.ajax({
url: "shared/blocktime.php",
type: "POST",
data: "{'itemID':'" + itemID+ "'}",
cache: false,
success: function(html){
$(".result").empty().html(html);
setTimeout(function () {
loadData(username, time);
}, 3000);
},
error:function (xhr, ajaxOptions, thrownError){
$(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
}
});
}
});
</script>
error_reporting(E_ALL);
$itemID= '17';
echo $itemID;
?>
<script type="text/javascript">var itemID= '<?php echo $itemID; ?>';</script>
<script>
$(document).ready(function(){
loadData(itemID);
function loadData(id) {
$.ajax({
url: "shared/blocktime.php",
type: "POST",
data: "{'itemID':'" + itemID+ "'}",
cache: false,
success: function(html){
$(".result").empty().html(html);
setTimeout(function () {
loadData(username, time);
}, 3000);
},
error:function (xhr, ajaxOptions, thrownError){
$(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
}
});
}
});
</script>
Ik heb dit gebruikt om te testen (en dit werkte):
Code (php)
1
<form method="post" action="shared/blocktime.php"><input type="text" name="itemID" size="55"><input type="submit" value="ok" /></form>
Hoe kan ik er achter komen waar de fout zit? Ik ben een leek in Jquery en weet niet hoe ik foutmeldingen kan weergeven...
- Ariën - op 13/01/2016 16:50:45:
Zet anders eens op diverse plekken een alert() met een logische tekst op wat strategische plekken in je JavaScript. Dan heb je een idee hoe je script wordt doorlopen.
Opsich is een console.log('Debug tekst hier') ook een mogelijkheid. Deze berichten kan je dan in de Debug-console van je browser zien, en scheelt je een hoop alerts().
Gewijzigd op 13/01/2016 19:03:54 door - Ariën -
Edit: Als itemID pas doorgegeven wordt na het submitten, dan zou die function() niet nodig zijn.
Gewijzigd op 13/01/2016 19:11:55 door DavY -
Hoe bedoel je Davy?
Bedoel je dat, Davy?
Gewijzigd op 13/01/2016 19:17:42 door - Ariën -
Oh okies, ik wist niet dat het formulier als test bedoelt was. Ik volg het allemaal even niet, omdat het verhaal nogal rammelt.. Als ik het goed begrijpt, voert TS zelf de item nummer in? of wordt dat ergens opgehaald? Uit database? Of vanuit het formulier dat men invult?
Het formulier zit er normaal gesproken niet in, maar heb ik gebruikt om te testen (hieruit bleek dat de fout in test.php zit).
Dus dat levert het volgende bestand op:
test.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
error_reporting(E_ALL);
$itemID= '17';
echo $itemID;
?>
<script type="text/javascript">var itemID= '<?php echo $itemID; ?>';</script>
<script>
$(document).ready(function(){
loadData(itemID);
function loadData(id) {
$.ajax({
url: "shared/blocktime.php",
type: "POST",
data: "{'itemID':'" + itemID+ "'}",
cache: false,
success: function(html){
$(".result").empty().html(html);
setTimeout(function () {
loadData(username, time);
}, 3000);
},
error:function (xhr, ajaxOptions, thrownError){
$(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
}
});
}
});
</script>
error_reporting(E_ALL);
$itemID= '17';
echo $itemID;
?>
<script type="text/javascript">var itemID= '<?php echo $itemID; ?>';</script>
<script>
$(document).ready(function(){
loadData(itemID);
function loadData(id) {
$.ajax({
url: "shared/blocktime.php",
type: "POST",
data: "{'itemID':'" + itemID+ "'}",
cache: false,
success: function(html){
$(".result").empty().html(html);
setTimeout(function () {
loadData(username, time);
}, 3000);
},
error:function (xhr, ajaxOptions, thrownError){
$(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
}
});
}
});
</script>
Maar de pagina shared/blocktime.php krijgt geen $_POST['itemID'] binnen, waardoor de database niet kan worden ge-update.
De verbinding met de database klopt namelijk (want als ik via een formulier naar deze pagina postte kwam alles er netjes in te staan).
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
error_reporting(E_ALL);
require("includes/globals.php");
$itemID = $_POST['itemID'];
$blocktime = time();
$update_item = mysql_query("UPDATE items SET blocktime = '".$blocktime."' WHERE itemID ='".$itemID."'");
?>
error_reporting(E_ALL);
require("includes/globals.php");
$itemID = $_POST['itemID'];
$blocktime = time();
$update_item = mysql_query("UPDATE items SET blocktime = '".$blocktime."' WHERE itemID ='".$itemID."'");
?>
Maar omdat ik een leek ben op het gebied van jQuery zie ik niet waar de fout in test.php zit, waardoor de $_POST['itemID'] niet aankomt in shared/blocktime.php....
function loadData(id)
Dus:
Of heb ik het verkeerd gedaan?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
error_reporting(E_ALL);
$itemID= '17';
echo $itemID;
?>
<script type="text/javascript">var itemID= '<?php echo $itemID; ?>';</script>
<script>
$(document).ready(function(){
loadData(id);
function loadData(id) {
$.ajax({
url: "shared/blocktime.php",
type: "POST",
data: "{'itemID':'" + id + "'}",
cache: false,
success: function(html){
$(".result").empty().html(html);
setTimeout(function () {
loadData(id);
}, 3000);
},
error:function (xhr, ajaxOptions, thrownError){
$(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
}
});
}
});
</script>
error_reporting(E_ALL);
$itemID= '17';
echo $itemID;
?>
<script type="text/javascript">var itemID= '<?php echo $itemID; ?>';</script>
<script>
$(document).ready(function(){
loadData(id);
function loadData(id) {
$.ajax({
url: "shared/blocktime.php",
type: "POST",
data: "{'itemID':'" + id + "'}",
cache: false,
success: function(html){
$(".result").empty().html(html);
setTimeout(function () {
loadData(id);
}, 3000);
},
error:function (xhr, ajaxOptions, thrownError){
$(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
}
});
}
});
</script>
En wat zegt de debug-console van je browser?
Gewijzigd op 13/01/2016 19:53:42 door - Ariën -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
17
<script type="text/javascript">var itemID= '17';</script>
<script>
$(document).ready(function(){
loadData(id);
function loadData(id) {
$.ajax({
url: "shared/blocktime.php",
type: "POST",
data: "{'itemID':'" + id + "'}",
cache: false,
success: function(html){
$(".result").empty().html(html);
setTimeout(function () {
loadData(id);
}, 3000);
},
error:function (xhr, ajaxOptions, thrownError){
$(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
}
});
}
});
</script>
<script type="text/javascript">var itemID= '17';</script>
<script>
$(document).ready(function(){
loadData(id);
function loadData(id) {
$.ajax({
url: "shared/blocktime.php",
type: "POST",
data: "{'itemID':'" + id + "'}",
cache: false,
success: function(html){
$(".result").empty().html(html);
setTimeout(function () {
loadData(id);
}, 3000);
},
error:function (xhr, ajaxOptions, thrownError){
$(".result").empty().html('Error:'+ xhr.status + ' '+ thrownError);
}
});
}
});
</script>
En laad je wel de .js-file van jQuery in? Zonder dat zullen de Jquery-functie namelijk nooit werken.
Edit: '+' vergeten weg te halen O_o
Edit 2: Voor het geval je gaat zeggen "het werkt niet":
Gewijzigd op 13/01/2016 20:16:12 door DavY -
Ah, de globale scope van JavaScript en de scope van $().ready() zijn mogelijk niet hetzelfde. Zet die var itemID declaratie eens binnen je $().ready() block...
Dit doe ik ook op mijn eigen website, wel met een extern .js bestand uiteraard waar ik die variabele in gebruik.
- Ik denk dat het hier aan ligt. Welke file moet ik linken?
www.jquery.com. Of desnoods als CDN inladen.
jQuery kan je downloaden op Davy, zou jij je bestandjes eens willen sturen naar mij?