het Pushen van nieuwe gegevens

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefan

Stefan

27/11/2009 22:14:00
Quote Anchor link
Is het mogelijk om de nieuwe gegevens in een database te pushen naar de client-side? Zoja, welke taal is dit het handigst in. Ik zat zelf te denken aan AJAX of JQuery.
 
PHP hulp

PHP hulp

18/04/2024 20:44:54
 

27/11/2009 22:18:00
Quote Anchor link
Met 'ajax' is het pullen. Niet pushen. Pushen raad ik je niet aan, aangezien je dan een php script hebt wat heel lang draait.
Php is daar nooit voor bedoelt. Een aantal minuten kan een script wel draaien, maar niet langer. Dan kom je in de knoop met dat het geheugen vol raakt, of dat er gewoon random fouten ontstaan.
IRC bots in php geschreven zijn om dezelfde rede onzin.
 
Stefan

Stefan

27/11/2009 22:20:00
Quote Anchor link
Dus pullen kan wel? Ik was van plan een soort chatsysteem te maken die kan integreren in de meeste CMS's. Is het dan handiger om een refresh script te maken die gewoon de div refresht waarin de gegevens worden opgehaald. Of juist door middel van pullen?
Gewijzigd op 01/01/1970 01:00:00 door Stefan
 

27/11/2009 22:24:00
Quote Anchor link
Ik denk dat je je eens in de materie moet verdiepen....
Over het algemeen wordt er via XHR request een div geupdate.
Dat is goed te doen voor een chatscript.
Het voordeel van ajax is dat het php script maar eventjes draait.
 
Stefan

Stefan

27/11/2009 22:26:00
Quote Anchor link
Ik heb ook nog nooit met Ajax gewerkt, dus vandaar dat ik dit doe. Om mijn talenpakket uit te breiden met Ajax. Maar toch bedankt voor je reactie. Ik zal mij eerst wat meer verdiepen in Ajax.
 

27/11/2009 22:29:00
Quote Anchor link
Let wel op, ajax is dus geen taal. Het is gewoon een afkorting voor:
'Asynchronous Javascript + Xml'.
Als je tutorials door leest e.d. dan zul je het wel snappen.
 
Stefan

Stefan

27/11/2009 22:30:00
Quote Anchor link
Ja, dat wist ik al. Maar heb o.a me nog niet echt verdiepts in javascript. De basics ken ik al. Maar wil graag wat meer leren. Ik gebruik w3schools voor al mijn leerstof =p
 

27/11/2009 22:34:00
Quote Anchor link
Op w3schools staat erg veel info. Een goede plek ter referentie en om van te leren.
Zoals je eerder al aangaf, jQuery te gebruiken is erg handig. Met jQuery hoef je de meet voorkomende dingen niet zelf opnieuw te schrijven. Ook is het gebruik dan vaak versimpelt. (Zij hebben al de code voor een request geschreven. Jij moet alleen opgeven wat voor type request je doet.)
 
Stefan

Stefan

27/11/2009 23:08:00
Quote Anchor link
Ik denk dat ik hier iets fout doe. Kom er alleen niet op:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<html>
<head>
<script type="text/javascript">
    var xmlhttp;
    
    function showHint(str) {
    
        if(str.length == 0) {
        
            document.getElementById("txtHint").innerHTML = "";
            return;
    
        }
        
        xmlhttp = GetXmlHttpObject();
        
        if(xmlhttp == null) {
        
            alert("Your browser is not compatible with this website.\r\nPlease, I recommend using FireFox or Google Chrome");
            return;
            
        }
        
        var url = "gethint.php";
        url = url+"?q="+str;
        url = url+"&sid="+Math.random();
        xmlhttp.onreadystatechange = stateChanged;
        xmlhttp.open("GET", url, true);
        xmlhttp.send(null);
        
}

function GetXmlHttpObject() {
    
    if (window.XMLHttpRequest) {
    
        // code for IE7+, Firefox, Chrome, Opera, Safari
        return new XMLHttpRequest();
    }
    
    if (window.ActiveXObject) {
    
        // code for IE6, IE5
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    return null;
    
}
    
function stateChanged() {
    
    if (xmlhttp.readyState==4) {
    
        document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
  
    }
    
}    
    
    
</script>
</head>
<body>
<form>
First Name: <input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>


En gethint.php:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");

$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";
$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";
$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";

$q = $_GET['q'];

if(strlen($q) > 0) {

    $hint = "";
    for($i=0; i<count($a); $i++) {
        
        if(strtolower($q) == strtolower(substr($a[$i], 0, strlen($q)))) {
            
            if($hint == "") {
                
                $hint = $a[$i];
                
            }
else {
            
                $hint = $hint.", ".$a[$i];
            
            }
            
        }
        
    }
}


if($hint == "") {

    $response = "No Suggestion Found";
    
}
else {
    
    $resposne = $hint;
    
}


echo $response;
?>


Error: Fatal error: Maximum execution time of 30 seconds exceeded in C:\web\apache\htdocs\ajax\suggestions\gethint.php on line 41
 
Hipska BE

Hipska BE

28/11/2009 10:54:00
Quote Anchor link
Lijn 41 mist er een var het $ teken..

BTW, de foutmelding geeft zelf al aan dat hij blijft steken op lijn 41, dus had je zelf al eens die lijn kunnen bekijken he..
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.