[XML/JS/PHP] Active Widget

Pagina: 1
Acties:

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
Hallo

Tjah ik heb weer een probleem met mijn widgets :(
Het is nu de bedoeling dat als er een dblclick in een row is van widget 1 dan worden de betreffende gegevens in een formulier ingevuld.
Vervolgens moet hij dan ook de 2de widget refreshen met andere gegevens die betrekking hebben met de in de eerste widget geselecteerde abonnement.
met een functie word er dan met behukp van AJAX een php file aangeroepen die vervolgens gegevens moet gaan schrijven in een xml bestand.
als hij eenmaal klaar is met deze handeling wordt vervolgens de 2de widget refreshed.
De bedoeling is dat deze widget dan de informatie weergeeft die op dat moment net opnieuw is geschreven in het bestand.
Maar dit doet hij dus niet.

Het verversen werkt wel maar het schrijven wordt niet uitgevoerd
Dus de functie wordt uitgevoerd bij het dubbleklikken van een row in widget1.
Wat code dat misschien van belang is:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//AJAX functie
function uitkTotalSendRequest(gsm) {
    if(gsm !== ''){
    req.open('get', '/functions/function_file_uitk.php?gsm=' + gsm)
      req.onreadystatechange = uitkTotalHandleResponse
      req.send(null)
    }
}
function uitkTotalHandleResponse() {
  if(req.readyState == 4){
    refreshActiveWidget2()
  }
}

//Widget functie refresh (), deze werkt ook prima
function refreshActiveWidget2() { 
        obj2.setStatusProperty("code", "loading"); 
        obj2.refresh(); 
        table2.setURL("../uitkeringen.txt");
        table2.request(); 
        obj2.setStatusProperty("code", ""); 
        obj2.refresh(); 
} 

PHP file die wordt aangeroepen
PHP:
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
<?php 
## -------------------------------------------------------------------------------------------------------------- ##
    //connection
    include_once("../includes/db.inc.php"); 

## -------------------------------------------------------------------------------------------------------------- ##
    //input waarde
    $gsm = $_REQUEST['gsm'];
    
    //open xml file
    $file = fopen("./administratie/uitkeringen.txt", "w+"); 
    fwrite($file, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
    
    //query gegevens uitkering met zelfde nummer
    $query =    "SELECT gsm_nr,fact_nr,uitgekeerde_bonus, verschil, verklaring 
                    FROM Providers_uitkering 
                    WHERE gsm_nr LIKE '%$gsm%'
                    AND abonid = ''";
    //results ophalen
    $resultaten = mysql_query($query, $conn) or die(mysql_error());
    
    //write xml van uitkering gegevens
    fwrite($file, "<uitkeringen>\r\n");
    while ($row = mysql_fetch_assoc ($resultaten)) {
        fwrite($file, "<uitkering>\r\n"); 
        foreach (array_keys($row) as $item) {
            fwrite($file, "<$item>"); 
            fwrite($file, htmlspecialchars($row["$item"]));
            fwrite($file, "</$item>\r\n"); 
        }
        fwrite($file, "</uitkering>\r\n"); 
    }
    fwrite($file, "</uitkeringen>"); 
    fclose($file);
?>

Misschien dat iemand een fout kan ontdekken...
Ik ben zelf al de hele dag hiermee bezig maar ben nog maar weinig voorruitgekomen naast dan die refresh functie die ik wel vanmorgen heb gefixed..
maar nu zit ik hiermee vast..
ok na een hele middag knutselen aan de code en wat tests uitgevoerd ben ik er 100% zeker van dat het aan de fwrite functie ligt want de query geeft de goede resultaten weer nadat ik deze dmv een wondow heb laten oproepen
maar hij schrijft deze gegevens niet weg naar het bestand....
het vreemde is dat deze code precies hetzelfde als in een andere bestand waar precies dezelfde actie wordt gedaan... :X

[ Voor 43% gewijzigd door Tijgertje84 op 10-11-2005 16:33 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 28-11-2025

BierPul

2 koffie graag

Volgens mij is het zo dat fwrite een string wegschrijft die je hem opgeeft :)

Het enige wat jij naar de txt file schrijft is: </uitkeringen>

dmv
PHP:
1
fwrite($file, "</uitkeringen>");


Ik zou de output opsparen binnen een var en deze ana het einde in de fwrite stoppen :)

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
34
35
36
37
<?php  
## -------------------------------------------------------------------------------------------------------------- ## 
    //connection 
    include_once("../includes/db.inc.php");  

## -------------------------------------------------------------------------------------------------------------- ## 
    //input waarde 
    $gsm = $_REQUEST['gsm']; 
    $output = "";
     
    //open xml file 
    $file = fopen("./administratie/uitkeringen.txt", "w+");  
    fwrite($file, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); 
     
    //query gegevens uitkering met zelfde nummer 
    $query =     "SELECT gsm_nr,fact_nr,uitgekeerde_bonus, verschil, verklaring  
                    FROM Providers_uitkering  
                    WHERE gsm_nr LIKE '%$gsm%' 
                    AND abonid = ''"; 
    //results ophalen 
    $resultaten = mysql_query($query, $conn) or die(mysql_error()); 
     
    //write xml van uitkering gegevens 
    $output .= "<uitkeringen>\r\n"; 
    while ($row = mysql_fetch_assoc ($resultaten)) { 
            $output .= "<uitkering>\r\n";   
        foreach (array_keys($row) as $item) { 
            $output .= "<$item>";  
            $output .= htmlspecialchars($row["$item"]); 
            $output .= "</$item>\r\n";  
        } 
       $output .= "</uitkering>\r\n"; 
    } 
    $output .= "</uitkeringen>";  
    fwrite($file, $output);
    fclose($file); 
?>


Ff uit mn hoofd maar should do the trick ;)

ps: Best wel /14 BTW O-)

[ Voor 11% gewijzigd door BierPul op 11-11-2005 08:58 ]

Ja man


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
helaas zelfde resultaat....
dus de vraag blijft waarom schrijft hij niets weg...
$resultaten zit ook gewoon gevult met de goede gegevens..
en dit is wat hij nu wegschrijft naar het bestand:
XML:
1
2
<?xml version="1.0" encoding="UTF-8" ?> 
  <uitkeringen /> 

dit had ik trouwens ook al eerder...


ps: Best wel /14 BTW ?????

[ Voor 14% gewijzigd door Tijgertje84 op 11-11-2005 09:23 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 28-11-2025

BierPul

2 koffie graag

echo output eens en vraag het scherm op :)

Dat debugged een stuk makkelijker :)

Ja man


Verwijderd

misschien een suggestie kan je niet beter
oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP"); (IE)
oXMLHTTP = new XMLHttpRequest(); (FF)
gebruiken.

op mijn brakke upload dump site, maak ik hier gebruik van om de referers van downloads runtime op te halen. Wat ik doe is een php script aanroepen, deze geeft een lange sting terug waar de verschillende waardes zijn gescheiden door een vast teken. Dus geen XML shit enzo.

http://www.n0thing.org

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
BierPul schreef op vrijdag 11 november 2005 @ 09:26:
echo output eens en vraag het scherm op :)

Dat debugged een stuk makkelijker :)
echo $output:
<uitkeringen>
</uitkeringen>

dit komt eruit....
als ik rechtstreeks $resultaten echo dan krijg ik dit:
Resource id #5
als ik vervolgens deze regel toevoeg:
PHP:
4
$test = mysql_result($resultaten,0);

en dan $test doe echoen krijg ik dit: 0655-555588 (het goede gsm-nummer)

EDIT:
laat maar weet niet waarom maar het heeft de hele tijd gewoon gewerkt |:(
ik had terwijl ik heel de tijd teste de path van die uitkeringen.txt veranderd maar vergeten terug te zetten :9~
dus ik keek telkens in een verkeerde file of deze vernieuwd was jah of nee..
dit was dan eigenlijk nog niet eens de grote fout..
deze regel geeft voor problemen:
PHP:
4
$test = mysql_result($resultaten,0);

dit had ik gedaan zodat ik continu kan zien of hij iets goed terug geeft maar deze regel verstoord op een of andere manier die fwite functie
want zonder deze regel schrijft hij wel alles weg... :X
tjah en aangezien ik altijd al die regel erin had zitten om te testen kreeg ik dus geen resultaat 8)7

misschien dat iemadn mij dan nog wel kan vertellen waarom dat die regel voor problemen kan zorgen??? of waarom dat hij die fwrite() niet verder uitvoert?
(zelf denk ik dat hij iets met die resultaten doet die vervolgens niet meer door die fwrite() gelezen kan worden)

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 28-11-2025

BierPul

2 koffie graag

Als je zoals in mijn voorbeeld alles opvangt in een var heb je volgens mij geen problemen.

+ dat je het systeem niet de hele tijd belast :)

Hij moet nu x aantal keer schrijven terwijl je het met 1 keer af kan.

Bij 5 regels merk je dat niet maar bij 15000 gaat ie wel anders piepen ;)

Ja man


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
BierPul schreef op vrijdag 11 november 2005 @ 10:19:
Als je zoals in mijn voorbeeld alles opvangt in een var heb je volgens mij geen problemen.

+ dat je het systeem niet de hele tijd belast :)

Hij moet nu x aantal keer schrijven terwijl je het met 1 keer af kan.

Bij 5 regels merk je dat niet maar bij 15000 gaat ie wel anders piepen ;)
daar heb je helemaal gelijk in en ik moet zeggen dat je het nu al wel kon merken...
dus ik pas meteen ook mijn andere fwrite functies ff aan ;)
maar zoals ik al zei waren er geen problemen....achteraf dan...
deze kwam door die ene regel.... en dus is mijn vraag nog steeds onbeantwoord :)

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H

Pagina: 1