[JS/PHP] veld query

Pagina: 1
Acties:
  • 341 views sinds 30-01-2008
  • Reageer

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
sorry als deze al bestaat ergens maar kon hierover niets vinden...

ik zit met een klein probleempje :)

je moet het zo zien ik heb op dit moment een formulier waar ik wat functies mee wil maken
Afbeeldingslocatie: http://home.aim.hsbrabant.nl/s136588/test.jpg
hierboven zie je een voorbeeld van een formulier
de bedoeling is dat als je een debiteurnummer invoerd dat dan meteen de desbetreffende debiteur naam in het 2de vak komt te staan

ik weet haast zeker dat dit moet lukken maar ben er al even mee bezig geweest maar kom er niet egt aan uit...

misschien dat ik ook helemaal verkeerd bezig ben

paar codes die misschien van toepassing zijn.
PHP:
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<td>Debiteurnr.:</td>
      <td colspan="4"><input name="debnr" type="text" id="debnr" tabindex="1" value="<? echo $_GET['debnr'];?>" size="10" maxlength="6">
          [img]"../images/glas.png"[/img]   
    </tr>
    <tr>
      <td>Debiteurnaam:</td>
      <td colspan="4"><input name="debnaam" type="text" id="debnaam" tabindex="2" value="<? echo $_GET['debnaam'];?>" size="30"></td>
    </tr>
    <tr>
      <td colspan="5">&nbsp;</td>
    </tr>
    <tr>
      <td>Abonnementsnr.:</td>
      <td><input name="abonnr" type="text" id="abonnr" value="<? echo $_GET['nr'];?>" tabindex="3" size="10" maxlength="6">
          [img]"../images/glas.png"[/img]</td>
       </tr>
    <tr>
      <td>Abonnementsvorm:</td>
      <td colspan="4"><input name="abonvorm" type="text" value="<?=getAbonnvorm(); ?>" id="abonvorm" tabindex="4" size="30"></td>
    </tr>

met de vergrootglas kan met met een ander scherm zoeken op naam en vervolgens als ze erop klikken worden de gegevens in dit scherm weergeven.
Dit werkt dan ook perfect!!

Maar ik wil dus als men een nummer uit hun hoofd weten dat ze die dan in kunnen vullen en dat er dan meteen een naam die erbij hoort weergeven wordt.

de
PHP:
4
<?=getAbonnvorm(); ?>
was eerst
PHP:
4
<? echo $_GET['vorm'];?>


dit moest ik veranderen wil ik er een functie van maken

hier dan een stukje code wat ik probeerde om dit te doen:
PHP:
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function getAbonnvorm(){
$conn = mysql_connect("localhost","***","***") or die("Unable to connect to SQL server");
mysql_select_db("*****") or die("Unable to select database");

if ($_POST['abonnr'] != "")
{
    $naar = $_POST['abonnr'];
    $abonnr = "SELECT abonvorm FROM Abonvormen WHERE (abonnr LIKE '%$naar%')"; 
    $abonnrresult = mysql_query($abonnr, $conn) or die(mysql_error());
    echo $abonnrresult;
}
else {echo $_GET['vorm'];}
}
?>

hoop dat iemadn mij hiermee kan helpen
alvast bedankt!!

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


  • Koeniepoenie
  • Registratie: Oktober 2003
  • Laatst online: 25-04 15:41
Je moet in de functie niet echo-en, maar via return het resultaat teruggeven, dan zou het moeten werken.

Parse error: syntax error, unexpected GOT_USER in https://gathering.tweakers.net on line 1337


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Misschien stomme oplossing, maar als je een submit functie maakt op die vergrootglazen, waarna als je erop klikt, het form geopend wordt waarin je kunt zoeken, die met een GET kijkt of er al een getal is ingevuld en dat dan het bijbehorende item geselecteerd wordt, zodat je alleen nog maar op ok hoeft te klikken in dat venster?

Het lijkt mij namelijk dat je zonder te GET-en niet de waarde van je textbox in php kunt uitlezen?

[ Voor 14% gewijzigd door CodeCaster op 13-10-2005 13:14 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
misschien even ter verduidelijking :)
PHP:
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function getAbonnvorm(){
$conn = mysql_connect("localhost","dbadmin","charlie") or die("Unable to connect to SQL server");
mysql_select_db("charlie_test") or die("Unable to select database");

//ik denk dat de fout hem hierin zit
if ($_POST['abonnr'] != "")
{
    $naar = $_POST['abonnr'];
    $abonnr = "SELECT abonvorm FROM Abonvormen WHERE (abonnr LIKE '%$naar%')"; 
    $abonnrresult = mysql_query($abonnr, $conn) or die(mysql_error());
    echo $abonnrresult;
}
//dit gedeelte werkt , dit was namelijk hetgeen wat er voorheen in de form zat
else {echo $_GET['vorm'];}
}
?>


de return had ik eerst ook en werkt niet.. iig niet op dit moment met deze code..

[ Voor 12% gewijzigd door Tijgertje84 op 13-10-2005 13:21 ]

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


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 07:44
Tijgertje84 schreef op donderdag 13 oktober 2005 @ 13:07:
de bedoeling is dat als je een debiteurnummer invoerd dat dan meteen de desbetreffende debiteur naam in het 2de vak komt te staan
[...]
hoop dat iemadn mij hiermee kan helpen
alvast bedankt!!
Wanneer je met "meteen" bedoelt dat het zonder reload moet gebeuren dan heb je weinig aan PHP. Je zult dan met clientside techniek aan de gang moeten. Een nette oplossing is dan te realiseren met AJAX / XMLHttpRequest().
Wil je daar niet aan dan valt er wel wat in het rond te hacken met een onzichtbaar iframe waar je een pagina in laadt die met Javascript de waarde in het formulier aanpast. Hoe je dit kunt doen is af te leiden uit de Javascript code die in de pop-up wordt gebruikt.
Tot slot nog de ranzigste (maar wel makkelijkste oplossing). Genereer met PHP een Javascript dat alle debiteur->naamparen hardcoded in zich heeft. Op een onchange van het nummer kun je nu de bijbehorende naam uit deze lijst trekken en plaatsen in het naam veld.

Regeren is vooruitschuiven


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
T-MOB schreef op donderdag 13 oktober 2005 @ 13:33:
[...]


Wanneer je met "meteen" bedoelt dat het zonder reload moet gebeuren dan heb je weinig aan PHP.
jah dat wilde ik dus hebben!!
maar dat gaat dus helaas niet :(
T-MOB schreef op donderdag 13 oktober 2005 @ 13:33:
Wil je daar niet aan dan valt er wel wat in het rond te hacken met een onzichtbaar iframe waar je een pagina in laadt die met Javascript de waarde in het formulier aanpast. Hoe je dit kunt doen is af te leiden uit de Javascript code die in de pop-up wordt gebruikt.
Tot slot nog de ranzigste (maar wel makkelijkste oplossing). Genereer met PHP een Javascript dat alle debiteur->naamparen hardcoded in zich heeft. Op een onchange van het nummer kun je nu de bijbehorende naam uit deze lijst trekken en plaatsen in het naam veld.
Nee dit kan niet want de debiteuren worden dagelijks via CSV import upgedate
ik denk dat ik het moet oplossen met een extra icoontje waar men dan op moet klikken om dan vervolgens met een code die dan uit de DB de betreffende debiteur haalt.
en wil niet met een iframe werken omdat deze gegevens nadat ze ingevoerd worden met tal van andere invoervelden (deze zijn nu even niet van toepassing) opgeslagen worden in de DB.

.....
ok stel dat het vergrootglas (dit zal een ander icoontje ernaast worden) de functie moet vervullen zodra men een nr invoerd en op het icoontje klikt moet de passende naam in het veld eronder komen te staan.
wat kan ik dan het beste doen??

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


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-04 22:07

Bosmonster

*zucht*

Tijgertje84 schreef op donderdag 13 oktober 2005 @ 13:40:
[...]


jah dat wilde ik dus hebben!!
maar dat gaat dus helaas niet :(
Dat gaat dus wel lukken als je een paar regels doorleest :)

Met een AJAX constructie kan het in een paar regels code.

Zorg overigens bij dit soort dingen in combinatie met AJAX dat je het niet onkeydown doet ofzo, anders wordt de server nogal gestresst met nutteloze calls. Bouw dan een halve seconde timer in bijvoorbeeld.

[ Voor 25% gewijzigd door Bosmonster op 13-10-2005 13:50 ]


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

sorry maar dat ken ik niet :X
wel de club :P

maaru ik het is een stage opdracht voor mij en ik wil het dus gewoon in php houden...
ik ga er geen andere sjit erbij betrekken waar ik nog nooit van heb gehoord (gaat mij weer iets te ver)

en javascript kan wel alleen ben ik daar zwaar noob in...

misschien dat iemadn mij daar een dan handje mee kan helpen als dit niet in php gaat..

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


  • BCC
  • Registratie: Juli 2000
  • Laatst online: 22:29

BCC

Ajax is javascript met PHP.. Google -> ajax toolkit php -> I Feel lucky.

[ Voor 44% gewijzigd door BCC op 13-10-2005 14:25 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
hmmz nu komt er een lampje...

ik had eerder zoiest als dit:
PHP:
4
5
6
7
8
9
echo "<script>"; 
echo "frm=document.forms[0]"; 
echo "if (value == '".$_POST['abonnr']."') {";
echo "frm.afloop.disabled=false; frm.afloop.value='".$_GET['$abonnrresult'] ."';"; 
echo "}"; 
echo "</script>";

maar dit werkte ook niet en aangezien ik er geen drol van begreep ben ik er maar mee gestopt...

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


  • BCC
  • Registratie: Juli 2000
  • Laatst online: 22:29

BCC

Tijgertje84 schreef op donderdag 13 oktober 2005 @ 14:28:
hmmz nu komt er een lampje...
ik had eerder zoiest als dit:
maar dit werkte ook niet en aangezien ik er geen drol van begreep ben ik er maar mee gestopt...
Dit wordt een lange stage, kerel :7

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
;( inow maar heb maar tot januari....
valt dit niet op te lossen met wat ik eerder zei over een extra icoontje waar men op klikt wat dan als volgt een query uitpoept en die het resultaat in dat veld dumpt?

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


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-04 22:07

Bosmonster

*zucht*

BCC schreef op donderdag 13 oktober 2005 @ 14:25:
Ajax is javascript met PHP.. Google -> ajax toolkit php -> I Feel lucky.
AJAX is javascript in combinatie met XMLrequests. Die KUN je in PHP afhandelen, maar dat stuk heeft dus niks met AJAX te maken.

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 22:29

BCC

Tijgertje84 schreef op donderdag 13 oktober 2005 @ 14:35:
;( inow maar heb maar tot januari....
valt dit niet op te lossen met wat ik eerder zei over een extra icoontje waar men op klikt wat dan als volgt een query uitpoept en die het resultaat in dat veld dumpt?
Ja prima, door middel van Ajax.. heb je die toolkit al bekeken?

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • BCC
  • Registratie: Juli 2000
  • Laatst online: 22:29

BCC

Bosmonster schreef op donderdag 13 oktober 2005 @ 14:36:
[...]
AJAX is javascript in combinatie met XMLrequests. Die KUN je in PHP afhandelen, maar dat stuk heeft dus niks met AJAX te maken.
Uiteraard heb je gelijk. Ik wou het wat simpel houden,. hij vind het nu al lastig genoeg. Als de rest in PHP is lijkt het me logisch dat je de XML ook genereert in PHP.

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
damn nee nog niet maar dat ga ik vandaag niet redden aangezien ik net ff een andere opdracht moet doen met sql... lol ze gebruiken stagiaires ook overal voor |:(
morgen zal ik er zeker naar kijken
en iig bedankt, waarschijnlijk zullen er morgen weer meer vragen hier komen :)

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


  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

Ik ben een week of 2 geleden ook eens gaan proberen met AJAX (erg mooie techniek trouwens); ik kwam op een artikel op xml.com uit wat het voor mij duidelijk gemaakt heeft. Het is wel engels, maar ik vond het een prima artikel. Wie weet heb je er wat aan, gewoon stap voor stap volgen. :)

--- edit ---

Ik zie nu net ook nog een ander topic over XMLHttpRequest, wie weet wordt daar ook nog iets gezegd waar je wat aan hebt. Succes.

[ Voor 25% gewijzigd door OkkE op 13-10-2005 15:15 ]

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
OkkE schreef op donderdag 13 oktober 2005 @ 15:13:
Ik ben een week of 2 geleden ook eens gaan proberen met AJAX (erg mooie techniek trouwens); ik kwam op een artikel op xml.com uit wat het voor mij duidelijk gemaakt heeft. Het is wel engels, maar ik vond het een prima artikel. Wie weet heb je er wat aan, gewoon stap voor stap volgen. :)

--- edit ---

Ik zie nu net ook nog een ander topic over XMLHttpRequest, wie weet wordt daar ook nog iets gezegd waar je wat aan hebt. Succes.
thnx!!!
ik zal er morgen wel eens doornemen!!
ik heb zelf al wat ervaring met Java dus programmeren globaal kan ik wel (SQL en HTML is eitje voor mij) en ben nu dus net bezig met PHP om mijn kennis uit te breiden :)
maar het zit hem telkens in de details/functies/manier van noteren die het zo lastig maken van de verschillende talen
morgen weet ik meer of ik het begrijp en anders jah we hebben niet voor niets dit forum :)

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


  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

Ervaring met programeren is zeker niet verkeerd om te hebben wil je met AJAX iets gaan doen. :) En die details van PHP, mwah, dan heb je het nog makkelijk imho, want PHP is best makkelijk en slikt best veel.

En mocht het echt niet lukken, kan je het altijd hier vragen idd. Maar bedenk wel dat hier wel wordt verwacht dat je zelf eerst moeite hebt gedaan. Simpel debug werk bijv. gaan wij niet doen. Specifieke vragen, met relevante code en een uitleg met wat niet werkt en wat je al geprobeerd heb zijn natuurlijk altijd welkom. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ik weet :)
ik probeer eerst altijd ben namelijk niet voor niets de hele dag bezig met hetgeen waar dit topic overgaat ;)

maar normaal gesproken wordt dit ook in een teamverband gedaan zon opdracht wat ik moet doen maar omdat het stage is moet ik het alleen doen en dus is mijn enige hulp die ik kan krijgen hier te vinden :)

mjah bijna 5 uur morgen weer een dag

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


  • Digihelp ®
  • Registratie: Maart 2001
  • Laatst online: 06:23
Tijgertje84 schreef op donderdag 13 oktober 2005 @ 13:40:
[...]

Nee dit kan niet want de debiteuren worden dagelijks via CSV import upgedate
ik denk dat ik het moet oplossen met een extra icoontje waar men dan op moet klikken om dan vervolgens met een code die dan uit de DB de betreffende debiteur haalt.
en wil niet met een iframe werken omdat deze gegevens nadat ze ingevoerd worden met tal van andere invoervelden (deze zijn nu even niet van toepassing) opgeslagen worden in de DB.

ok stel dat het vergrootglas (dit zal een ander icoontje ernaast worden) de functie moet vervullen zodra men een nr invoerd en op het icoontje klikt moet de passende naam in het veld eronder komen te staan. wat kan ik dan het beste doen??
Die dagelijkse CSV import maakt natuurlijk niet uit. Als je de hardcoded javascript door PHP laat genereren, dan gebruikt hij altiijd de debiteuren die op dat moment in de database staan.

Andere optie met het vergrootglas kan ook, je kan gewoon met javascript een popup schermpje laten open en het resultaat (het debiteurnummer) terug sturen naar het oorspronkelijke form. Daar heb je geen AJAX voor nodig, alhoewel dat misschien wel een mooiere oplossing is.

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
hmmz ben nu bezig met die AJAX maar tering zeg wat is dit ingewikkeld :(

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


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ik heb iets anders gevonden:

http://getahead.ltd.uk/dwr/examples/address

Dit is precies wat het moet zijn!!!!!!
maaaaaaar is mijn vraag.... kan ik dit aanpassen zodat hij een query uitvoert en dus het resultaat alsnog weergeeft??
Hoop van wel anders ben ik bang dat ik verder moet met dat te ingewikkelde AJAX... :|


kan javascript uberhaupt wel een query uitvoeren net als wat php kan??

[ Voor 10% gewijzigd door Tijgertje84 op 14-10-2005 14:10 ]

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


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ik heb nu dit
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script type='text/javascript' src='engine.js'> </script>
<script type='text/javascript' src='util.js'> </script>
<script type='text/javascript' src='generic.js'> </script>
<script type='text/javascript'>
function fillAddress()
{
    var abonnr = DWRUtil.getValue("abonnr");
    Demo.fillAddress(fillForm, abonnr);
}
function fillForm(address)
{
    DWRUtil.setValue("abonvorm", address.abonvorm);
    DWRUtil.setValue("warning", "Fout Abonnr!.");
}

function init()
{
    DWRUtil.useLoadingMessage();
}

callOnLoad(init);
</script>

PHP:
4
<input name="abonnr" type="text" id="abonnr" onchange="fillAddress()" value="<? echo $_GET['nr'];?>" tabindex="3" size="10" maxlength="6">


het werkt nog niet egt....
ik denk het al wel te weten omdat deze script de gegevens niet uit de database haalt...
iig nog niet :S
hoe kan ik dit voor elkaar krijgen...
het moet mogelijk zijn want op deze site zeggen ze dit:
http://getahead.ltd.uk/dwr/examples/address
"The fully functional version of this example was written for a client of mine that has full access to UK postcode data"
ik haal hieruit dat ze deze info uit een dbase halen
misschien iemand met een suggestie..

[ Voor 16% gewijzigd door Tijgertje84 op 14-10-2005 15: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


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Dit heeft intussen allang niets meer met PHP te maken. Clientside zaken horen in Webdesign & Graphics.

Trouwens, Tijgertje84: als je zelf de laatste poster bent in je topic, wil je dan je post editen als je nog wat toe te voegen hebt? Je topic schoppen is pas toegestaan na 24 uur. :)

PW>>WG

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
oh lol ok :)
was mijn post ineens kwijt XD
gelukkig zat hij nog in mijn favorieten

maar zal het onthouden ;)

maar ben ook druk bezig met AJAX iig te proberen wat tutorials te volgen...
dus weet niet of dat ook hier nog bij hoort..
affijn ik hoop dat ook hier mensen zijn die mij kunnen helpen
ben iig wel druk bezig met van alles uit te vogelen, maar tis niet gemakkelijk ;(

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


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 07:44
De site waaran je refereert gebruikt Java om dit te bereiken, dat is iets fundamenteel anders dan Javascript. Wat je wil bereiken is niet mogelijk met alleen javascript, je kunt namelijk niet bij de database. Je zult dus een trucje moeten toepassen, en ja, misschien moet je daar wat moeilijks voor leren. Ajax is wmb betreft nog steeds "the way to go". Ipv twee dagen op internet zoeken en vragen naar kant en klare oplossingen had je imho je tijd beter kunnen besteden aan het leren van de elementaire basis van Ajax. Met die basis was je probleem al lang opgelost.

Een ouderwetse truc is die met het iframe. Je neemt een iframe op in je pagina dat onzichtbaar is:
HTML:
1
<iframe name="serverconnectie" src="foo.html" style="display:none;" />


Op de server maak je nu een script om de gewenste data uit de database te halen. Op basis van een get request zoek je de juiste naam in de db. Deze spuug je uit in de vorm van een javascriptje dat de waarde in het formulier aanpast. De output is dan zoiets:
HTML:
1
2
3
4
5
6
7
8
9
<html>
 <head>
 <script type="text/javascript">
  function addNameToFormInParent(name) {
     parent.document.forms['formuliernaam'].elements['debiteurnaam'].value = name;
  }
 </script>
 </head>
 <body onload="addNameToFormInParent('<?php echo $foundName; ?>')"></body></html>


Nu hoef je alleen nog maar te zorgen dat op een onchange in het debiteurnummer-veld de juiste pagina in het iframe wordt aangeroepen. Succes :)

Regeren is vooruitschuiven


Verwijderd

Dit is op te lossen op verschillende manieren.
- Een op het momeent veel te gehypte manier is met AJAX. Erg netjes, maar redelijk complex.
- Gewoon javascript.

Mocht je dus veel problemen hebben met AJAX, maar wel overweg kunnen met javascript; dan kun je het volgende doen.

Bij de request van de pagina, voer je in PHP een query uit die alle debiteurennummers en hun namen opvraaggt. Deze prop je in javascript 2d array.

Bij het onKeyUpEvent van de inputbox, controleer je iedere keer of het nummer in je array voorkomt en geef je de naam weer in het boxje.

Vergeleken met AJAX is het niet zo netjes, maar wellicht ietsjes makkelijker. Op deze manier heb ik in het verleden heel veel tabellen gemaakt die je zonder request kon sorteren :)

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
K*T!!!!!!!!!!!!!!!:(:(:(:(:(:(
ik had een post vol met vragen maar op een of andere manier is deze kwijt nadat ik op preview drukte!!!!!!
vol met screens en code etc etc etc

GVD naja dan post ik dat wel maandag ochtend aangezien het nu 5 uur is en ik vrij ben

@Moderator ik was alles kwijt nadat ik op bekijk berickt drukte werd hierna verwezen...
http://gathering.tweakers.net/forum/ en kreeg een lege pagina te zien..
nadat ik vorige klite was ik ALLES kwijt... :( |:( ;( :'(


edit:
hier baal ik zo van was zon lange post :(
kan er niet aan werekn in het weekend aangezien ik dit alleen op mijn stage plek kan doen..

[ Voor 14% gewijzigd door Tijgertje84 op 14-10-2005 17:02 ]

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


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ok dan hier poging 2 van mijn verhaal wat de vorige keer misging
deze was namelijk helemaal verdwenen nadat ik op bekijk bericht drukte

wat ik dus wilde zeggen is dat ik het alsnog met AJAX wil proberen
alleen is javascript niet iets waar ik zeer goed in ben (java ken ik wel als is dit wel iets anders)

ik heb na wat onderzoek op internet een soort van "hello world" gevonden voor AJAX
ik heb dit dus zelf ingebouwd en heb er een test van gemaakt en deze werkt perfect.
heb ervoor gezorgt dat als er een nummer wordt ingevoerd bij abonnementnummer dan komt er een "test" te staan in mijn scherm in de vorm van een div. (<div id="abonvorm"></div>)
Afbeeldingslocatie: http://home.aim.hsbrabant.nl/s136588/test2.jpg

hieronder de script van AJAX dat ik gebruik:
JavaScript:
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
<script type="text/javascript" language="Javascript">
//AJAX
function createXMLHttpRequest() {
  var ua;
  if(window.XMLHttpRequest) {
    try {
      ua = new XMLHttpRequest();
    } catch(e) {
      ua = false;
    }
  } else if(window.ActiveXObject) {
    try {
      ua = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
      ua = false;
    }
  }
  return ua;
}

var req = createXMLHttpRequest();

function sendRequest(id) {
  req.open('get', 'hello.php?id=' + id);
  req.onreadystatechange = handleResponse;
  req.send(null);
}

function handleResponse() {
  if(req.readyState == 4){
    var response = req.responseText;
    var update = new Array();

    if(response.indexOf('||' != -1)) {
      update = response.split('||');
      document.getElementById(update[0]).innerHTML = update[1];
    }
  }
}
</script>

Dit is de code uit de php file:
PHP:
4
5
6
7
8
9
10
11
12
13
14
<?php
  $id = $_REQUEST['id'];
 // $conn = mysql_connect("localhost","******","*******") or die("Unable to connect to SQL server");
//  mysql_select_db("*****") or die("Unable to select database");
    
//  $query = "SELECT debnr,debnaam,straat,nummer,postcode,woonplaats,telefoon,fax FROM Debiteuren WHERE debnaam LIKE '%$id%'"; 
    
//  $abonvorm = mysql_query($query, $conn) or die(mysql_error());
  echo "$id||test";
//  echo "$id||"'. "$abonvorm" .'"";
?>

dit werkt dus perfect zoals je in het plaatje kan zien
nu wil ik het volgende gaan doen
hetgeen wat in de php file als comment staat moet gaan werken zodat ze met deze functie de abonnementvorm uit de databse haalt en vervolgens moet dit dan terug worden gegeven en in het tekstvak komen van abonnementvorm
hieronder een gedeelte van de hoofdpagina waat dit formulier zich in bevind, ik zal het nodige hier pasten
PHP:
4
5
6
7
8
9
10
11
12
//dit is de test div om te kijken of het terug geven van de info uit de hello.php file wel werkt
<div id="abonvorm"></div>

//dit is de formulier gedeelte wat van belang is
<td>Abonnementsnr.:</td>
      <td><input name="abonnr" type="text" id="abonnr" onchange="javascript:sendRequest('abonvorm');" value="<? echo $_GET['nr'];?>" tabindex="3" size="10" maxlength="6">

<td>Abonnementsvorm:</td>
      <td colspan="4"><input name="abonvorm" type="text"  value="<? echo $_GET['vorm']; ?>" id="abonvorm" tabindex="4" size="30"></td>

op dit moment werkt de query zelf nog niet want ik krijg de volgende fout als ik de pagina run
Afbeeldingslocatie: http://home.aim.hsbrabant.nl/s136588/test3.jpg

mijn vraag is nu alsvolgt:
1. Heb ik de query goed aangepakt in de php file?? (en de manier van "echo "$id||"'. "$abonvorm" .'";")
2. Hoe kan ik teruggeven waarde in het textvak van het formulier krijgen? Aangezien deze dezelfde id heeft als de div maar tog leeg blijft?
3. Ik denk dat ik hiervoor een get of post moet gaan gebruiken om dit te laten werken??

ik hoop dat iemand mij kan helpen :)
alvast bedankt

[ Voor 12% gewijzigd door Tijgertje84 op 17-10-2005 09:37 ]

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


  • Johnny
  • Registratie: December 2001
  • Laatst online: 24-04 11:10

Johnny

ondergewaardeerde internetguru

Een ID moet uniek zijn, je mag hem maar 1 keer dezelfde op de pagina gebruiken!

En waarom test je je query niet gewoon door naar die pagina te gaan en een ID in te vullen in de adresbalk en kijken wat je terugkrijgt?

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
Johnny schreef op maandag 17 oktober 2005 @ 09:48:
En waarom test je je query niet gewoon door naar die pagina te gaan en een ID in te vullen in de adresbalk en kijken wat je terugkrijgt?
ik denk dat je dan iets bedoelt als dit:
"b_abonn_add.php?id=abonvorm&..."
maar wat moet ik dan bij de puntjes zetten..
hier moet namelijk de value zelf inkomen neem ik aan??

edit: de hello.php file neem ik aan ipv b_abonn_add.php

edit2:
ik denk dat ik het volgende moet aanpassen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function sendRequest(id) {
  req.open('get', 'hello.php?id=' + id);
  req.onreadystatechange = handleResponse;
  req.send(null);
}

function handleResponse() {
  if(req.readyState == 4){
    var response = req.responseText;
    var update = new Array();

    if(response.indexOf('||' != -1)) {
      update = response.split('||');
      document.getElementById(update[0]).innerHTML = update[1];
    }
  }
}

in dit geval geeft hij alleen maar de id mee maar zou ook de ingevoerde abonnnr moeten meegeven
ik denk dat het dan zo moet:
JavaScript:
1
2
3
4
5
function sendRequest(id,nr) {
  req.open('get', 'hello.php?id=' + id + '&nr=' + nr);
  req.onreadystatechange = handleResponse;
  req.send(null);
}

maar hij moet daarna dit nr niet meer gebruiken maar een andere waarde mee terug geven namelijk de abonnementen vorm
ik denk dat ik dan zeker ook de handleResponse moet aanpassen :'(
(ben javascript NOOB :()

[ Voor 66% gewijzigd door Tijgertje84 op 17-10-2005 10:27 ]

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


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 07:44
Tijgertje84 schreef op maandag 17 oktober 2005 @ 09:36:
mijn vraag is nu alsvolgt:
1. Heb ik de query goed aangepakt in de php file?? (en de manier van "echo "$id||"'. "$abonvorm" .'";")
De query is op zich niet fout, alhoewel je imho teveel data ophaalt. Bij het verwerken van de query gaat het echter mis. Je probeert nu een resource te echo-en. Je moet nog even de juiste data uit die resource halen. Als het nog steeds om de debiteurnaam gaat zou ik het volgende doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    //connection
    $conn = mysql_connect("localhost","******","*******") or die("Unable to connect to SQL server");
    mysql_select_db("*****") or die("Unable to select database");
    
    //input waarde, ff checken :)
    $id = $_REQUEST['id'];
    if (!is_numeric($id)) { die ('Hacking attempt'); }

    //query, niet meer velden ophalen dan nodig, niet meer rijen dan nodig
    $query = 'SELECT debnaam
              FROM Debiteuren 
              WHERE debid = ' .$id .'
              LIMIT ';
    $res = mysql_query($query, $conn);
    $debName = mysql_result($res, 0);
    
    //output
    echo $id .'||' .$debName;
2. Hoe kan ik teruggeven waarde in het textvak van het formulier krijgen? Aangezien deze dezelfde id heeft als de div maar tog leeg blijft?
Zoals hierboven opgemerkt moet een id uniek zijn, dat moet je dus sowieso even fixen. Het zetten van de waarde van een input veld doe je voorts door de value ervan aan te passen:
JavaScript:
1
2
3
4
5
6
7
8
9
document.getElementById('idVanInput').value = "waarde";

//Heeft het input veld geen id dan kun je het aanspreken met document.forms:
document.forms["formuliernaam"].elements['inputnaam'].value = "waarde";

//of zelfs zonder namen:
var i = 0; //volgorde van formulier in document, beginnend bij 0 voor eerste formulier
var j = 0; //volgorde van element in formulier, 0 voor eerste element
document.forms[i].elements[j].value = "waarde";
3. Ik denk dat ik hiervoor een get of post moet gaan gebruiken om dit te laten werken??
Ik snap niet helemaal wat je hiermee bedoelt. Het AJAX gedeelte werkt toch al? En daarbij gebruik je idd een GET request.

Regeren is vooruitschuiven


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
T-MOB schreef op maandag 17 oktober 2005 @ 11:11:
[...]
De query is op zich niet fout, alhoewel je imho teveel data ophaalt. Bij het verwerken van de query gaat het echter mis. Je probeert nu een resource te echo-en. Je moet nog even de juiste data uit die resource halen. Als het nog steeds om de debiteurnaam gaat zou ik het volgende doen:
[...]
Zoals hierboven opgemerkt moet een id uniek zijn, dat moet je dus sowieso even fixen. Het zetten van de waarde van een input veld doe je voorts door de value ervan aan te passen:
THNX!!
jah sorry maar ik merkte dat ik iets verkeerd ahd gepost :)

de query die er staat klopt inderdaad HELEMAAL niet!! ><
het gaat nu om de abonnement vorm die ik moet ophalen
2. jah de id had ik al aangepast ;)
ik ga het nu ff uitproberen maar ik denk dat je een fout hebt gemaakt maar dat laat ik zo wel ff weten als ik het zelf heb uitgewerkt ;)

update:

ok heb het een en ander aangepast en bedankt voor die ene regel van js!!
dit werkt perfect!
nu krijg ik alleen hetvolgende in mijn abonnementvorm vak: "undefined"

Wat dus inderdaad fout was gegaan is dat de id helemaal niet de abonnementnummer is!!
maar het id van een veld (div,span, formveld)
dus dat had je fout gedaan in de query wat mij meteen opviel en dus heb ik dit aangepast naar hetvolgende:
PHP file
PHP:
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
    //connection
    $conn = mysql_connect("localhost","******","*******") or die("Unable to connect to SQL server");
    mysql_select_db("*****") or die("Unable to select database");
    
    //input waarde, ff checken :)
    //$id = $_REQUEST['id'];
    $nr = $_REQUEST['nr'];
    if (!is_numeric($id)) { die ('Hacking attempt'); }

    //query, niet meer velden ophalen dan nodig, niet meer rijen dan nodig
    $query = 'SELECT abonvorm
              FROM Abonvormen 
              WHERE abonnr = ' .$nr .'
              LIMIT ';
    $res = mysql_query($query, $conn);
    $abonVorm = mysql_result($res, 0);
    
    //output
    //echo $id .'||' .$abonVorm;
    echo $abonVorm;
?>

Script sendRequest:
JavaScript:
1
2
3
4
5
6
function sendRequest(nr) {
  //req.open('get', 'hello.php?id=' + id); dit was de oude
  req.open('get', 'hello.php?nr=' + nr);
  req.onreadystatechange = handleResponse;
  req.send(null);
}

Script handleResponse:
JavaScript:
1
2
3
4
5
6
7
8
function handleResponse() {
  if(req.readyState == 4){
    var response = req.responseText;
    var update = new Array();
    update = response;
    document.getElementById('abonvorm').value = update[0];
  }
}

Maar wat ik ook doe ik blijf nog steeds die "undefined" zien
zie hieronder:
Afbeeldingslocatie: http://home.aim.hsbrabant.nl/s136588/test4.jpg

[ Voor 48% gewijzigd door Tijgertje84 op 17-10-2005 12:08 ]

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


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 27-04 10:06

Pelle

🚴‍♂️

Toevallig laatst iets vrijwel soortgelijks gemaakt :)

Klikken op vergrootglas triggert een javascript functie die met showModalDialog een window opent:

Afbeeldingslocatie: http://www.jellejanvanveelen.nl/got/mp_screenshot1.png

Als je een debiteur aanklikt dan wordt het debiteurnummer als parameter via XMLHTTP naar een ASP pagina gestuurd, en die stuurt deze XML response terug:

Afbeeldingslocatie: http://www.jellejanvanveelen.nl/got/mp_screenshot3.png

En dat parse ik dan weer en zet het terug in het form:

Afbeeldingslocatie: http://www.jellejanvanveelen.nl/got/mp_screenshot2.png

En dat gaat dus ongeveer zo:

Java:
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
//-- modaldialog openen en xml file van debiteurnummer openen
function insertDebiteur (_form) {
    var md      = showModalDialog('selectdebiteur.asp', '', 'center:yes;dialogWidth:500px;dialogHeight:400px;scroll:yes;');
    xmlDebiteur = new XMLFile('./xml/debiteur.xml.asp?debiteurnr=' + md, 'debiteurObject', _form);
}



//-- xml file object
function XMLFile(_url, _handler, _form) {
    this.url        = _url;
    this.handler    = _handler;
    this.form       = _form;
    var ptr         = this;
    
    if (document.implementation && document.implementation.createDocument) {
        
        this.xmlDoc = document.implementation.createDocument("", "", null);
        this.xmlDoc.onload = window[ptr.handler](ptr.xmlDoc, ptr.form);
        
    } else if (window.ActiveXObject) {
        
        this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        this.xmlDoc.onreadystatechange = function () {
            if (ptr.xmlDoc.readyState == 4) window[ptr.handler](ptr.xmlDoc, ptr.form);
        }
        
    } else {
    
        alert('XML not supported');
        return;
    }
    
    this.xmlDoc.load(this.url);
}



//-- xml debiteur handler
function debiteurObject(_xml, _form) {
    
    var debiteur    = new Object();
    var xml         = _xml.getElementsByTagName('debiteur');
                
    debiteur.debiteurnr             = (xml.item(0).getElementsByTagName('debiteurnr')            .item(0).firstChild) ? xml.item(0).getElementsByTagName('debiteurnr')            .item(0).firstChild.nodeValue : '';
    debiteur.factuurnaam            = (xml.item(0).getElementsByTagName('factuurnaam')           .item(0).firstChild) ? xml.item(0).getElementsByTagName('factuurnaam')           .item(0).firstChild.nodeValue : '';
    debiteur.factuurcontactpersoon  = (xml.item(0).getElementsByTagName('factuurcontactpersoon') .item(0).firstChild) ? xml.item(0).getElementsByTagName('factuurcontactpersoon') .item(0).firstChild.nodeValue : '';
    //-- etc...
    
    with (_form.elements) {
        debiteurnr.value            = debiteur.debiteurnr;
        factuurnaam.value           = debiteur.factuurnaam;
        factuurcontactpersoon.value = debiteur.factuurcontactpersoon;
        //-- etc...
    }

}


Koud kunstje, en erg gebruiksvriendelijk :)

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
OMG lol na wat gepeuter in de code kwam ik hierachter:
JavaScript:
1
2
3
4
5
6
7
8
function handleResponse() {
  if(req.readyState == 4){
    var response = req.responseText;
   //var update = new Array(); deze had ik weggehaald aangezien array niet nodig voor 1 waarde
   var update = response;
   document.getElementById('abonvorm').value = update[0]; //Dit was het
  //Dit is de goede XD aangezien het geen array meer is...
   document.getElementById('abonvorm').value = update; 

gewoon de [0] weghalen en hij werkt maar toen kreeg ik dit
"Unable to connect to SQL server"
uhm lolz ik had de sterrertjes mee gekopieerd!!! 8)7 |:(
ahah en tjah ff aanpassen krijg ik dit: "Hacking attempt"
hmmz ik weet ook meteen dat deze fout hem hierinzit:
PHP:
4
if (!is_numeric($id)) { die ('Hacking attempt'); }

het probleem is waarom heb je dit zo gedaan??
is er iets mis met numerieke invoer???
Maar in dit geval is invoer zelf numeriek!! namelijk abonnementnummer....
nu haal ik deze regel weg en nu blijft het vak helemaal leeg!!!
de vraag is waarom :? ... want de query zou moeten werken nu... :?
krijg ook geen foutmeldingen dus alles is goed maar heb het id dat er ergens iets mis is of ik mis nog iets...

@ Pelle
Ziet er inderdaad zeer goed uit lijkt een beetje wat ik eerder op school heb gehad
maar als ik het zo zie is het niet web-based :)
maar blijft alsnog zeer leuk om te zien, heb zelf ook zoiets moeten maken met sybase en een keer met java.
maar heb het nog niet met xml moeten doen (denk niet dat we dat krijgen .... :/)

[ Voor 34% gewijzigd door Tijgertje84 op 17-10-2005 12:32 ]

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


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 07:44
Tijgertje84 schreef op maandag 17 oktober 2005 @ 12:17:
PHP:
4
if (!is_numeric($id)) { die ('Hacking attempt'); }

het probleem is waarom heb je dit zo gedaan??
is er iets mis met numerieke invoer???
Omdat ik er vanuit ga dat je id bestaat uit numerieke invoer. Als er niet-numerieke invoer binnenkomt klopt er dus iets niet en mag het script sterven. Op die manier voorkom je problemen met SQL-injectie.

Voor wat betreft het niet werken, er zijn twee mogelijke oorzaken. 1. Je query is brak en genereert een mysql_error; of 2. Er wordt geen waarde gevonden bij het opgevraagde id.
Aangezien je script sterft op de !is_numeric denk ik dat het deze laatste is. Je vraagt op de een of andere manier om niet-numerieke id's waar deze wel numeriek zijn.

offtopic:
Pelle's voorbeeld is wel degelijk webbased... Het is een voorbeeld van de toepassing van AJAX in een ASP omgeving.

Regeren is vooruitschuiven


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 27-04 10:06

Pelle

🚴‍♂️

@ Pelle
Ziet er inderdaad zeer goed uit lijkt een beetje wat ik eerder op school heb gehad
maar als ik het zo zie is het niet web-based :)
maar blijft alsnog zeer leuk om te zien, heb zelf ook zoiets moeten maken met sybase en een keer met java.
maar heb het nog niet met xml moeten doen (denk niet dat we dat krijgen .... :/)
Dit is 100% webbased hoor :)
Gebruikte technieken: HTML, CSS, JS, XML, ASP, MSSQL.

Ik heb het alleen zo gestyled dat het op de windows-applicatie lijkt waar betreffende klant al mee werkte.

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ff de post verwijderd
want er zaten een hoop fouten in door paar stomme zelfgemaakte fouten
etc brb

[ Voor 158% gewijzigd door Tijgertje84 op 17-10-2005 14:07 ]

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


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 07:44
Tijgertje84 schreef op maandag 17 oktober 2005 @ 13:37:
PHP:
4
5
$nr = $_REQUEST['nr'];
if (!is_numeric($nr)) { die ('Hacking attempt'); }

alleen krijg ik nu voor elke invoer een 'Hacking attempt' :(
deze deze laat ik voor nu ff inactief zodat ik de rest kan testen.
Als het een nummer moet zijn, heeft het weglaten van deze code geen enkele zin voor het testen van de rest. Stopt ie op "hacking attempt", dan is het geen numerieke waarde en dan gaat er daarvoor al iets mis...
PHP:
4
<input name="abonnr" type="text" id="abonnr" onchange="javascript:sendRequest(<? echo $_GET['abonnr'];?>)" value="<? echo $_GET['nr'];?>" tabindex="3" size="10" maxlength="6">

de onchange="javascript:sendRequest(<? echo $_GET['abonnr'];?>)" zou imo goed moeten zijn
maar misschien geeft hij wel helemaal niets door..
de value="<? echo $_GET['nr'];?>" is nu niet van belang want deze werkt met de functie van het vergrootglas ;)
Wat zit er dan in $_GET['nr'] op de pagina van het form? Juist, helemaal niets, behalve als je de pagin aanroept met pagina.php?nr=foo. $_GET['nr'] zal dan de string foo bevatten. Wat je wil doen is een sendrequest met invoer die pas bekend wordt nadat de pagina gegenereerd is. Waarschijnlijk iets als:
code:
1
onchange="sendRequest(this.value)"


Verder zijn de mensen die je hier helpen niet bezig om jouw applicatie te schrijven. Als ik een stukje code neerplant dan is dat bij wijze van voorbeeld. De bedoeling is dan dat je er naar kijkt, probeert te begrijpen wat er gebeurd en dan te kijken of je dit kunt gebruiken. Het is niet de bedoeling dat je het copy-paste en vervolgens de foutmelding komt aandragen.

Regeren is vooruitschuiven


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
'zucht' af en toe wordt ik helemaal gek hiervan 8)7

ik had voorheen wat dingen aangepast om te testen maar vervolgens deze niet meer terug gedraaid zoals het was.... |:(
dus mijn excuses hiervoor
dat was dan ook de reden dat die hacking niet werkte, maar nu dus wel
al voordat je deze post maakte ;)

@$_GET['nr']
de value="<? echo $_GET['nr'];?>" is nu niet van belang want deze werkt met de functie van het vergrootglas ;). deze werkt dus nog steeds en heeft verders niets te maken met het huidige probleem

@this.value
did was de goede oplossing idd en thnx for that!!

Ik heb getest of het zo werkte maar nog steeds blijft het veld leeg
als ik nu de meegegeven nr laat returnen dan werkt het weer wel perfect zoals het moet
dus de fout zit hem ben ik bang in de query (die volgens mij toch egt wel klopt)

@copy-paste
Ik heb inderdaad wat gecopieerd en geplakt, maar dit was mede voor die php file omdat dit een betere layout was en heb zelf daarna alles aangepast maar ben toen 2 dingen vergeten
want de layout was goed maar de inhoud klopte helemaal niet
en die anti SQL injection had ik eerder gezien op een site dus vandaar dat ik wist dat dit klopte maar ik snapte de error vervolgens niet... nu wel
en ik begrijp dat niemand hier een complete correcte code zal pasten ;)

@pelle
Ok ook goed :) maar ik ken geen ASP dus daar hou ik me liever even buiten ;) tis al lastig genoeg nu voor mij... maar ok ben nog maar een beginnende programmeur (en ik doe niet eens de technische richting, doe namelijk I dat is zowel TI als BI bijelkaar.) die nu HBO 3de jaars is dus dont slap me mocht ik iets zeggen wat niet klopt O-)

[ Voor 4% gewijzigd door Tijgertje84 op 17-10-2005 14:32 ]

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


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 07:44
Als je mijn query letterlijk overgenomen hebt dan zit er idd een typo in. LIMIT moet natuurlijk een aantal hebben. In dit geval 1 :). En misschien gaat er wel meer mis, maar een query debuggen mag toch geen probleem zijn, lijkt me...

offtopic:
In de post van Pelle staat verder geen regel ASP. Alleen een beetje Javascript code die je zo zou kunnen gebruiken. Voor de XML response maakt het verder geen drol uit of je die met PHP, ASP of voor mijn part BASIC genereert.

Regeren is vooruitschuiven


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
T-MOB schreef op maandag 17 oktober 2005 @ 14:37:
Als je mijn query letterlijk overgenomen hebt dan zit er idd een typo in. LIMIT moet natuurlijk een aantal hebben. In dit geval 1 :). En misschien gaat er wel meer mis, maar een query debuggen mag toch geen probleem zijn, lijkt me...
hmmz ik juist die limit weggehaald (en dus niet overgenomen ;))
maar nu ik hem terug zet werkt het wel!!!
vreemd vinnik aangezien de abonnr unieke sleutel is...

EDIT: Problem solved!!!
het werkt zoals het moet en iedereen bedankt voor de moeite!! _/-\o_

[ Voor 9% gewijzigd door Tijgertje84 op 17-10-2005 15:15 ]

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


Verwijderd

Pelle schreef op maandag 17 oktober 2005 @ 12:02:
Toevallig laatst iets vrijwel soortgelijks gemaakt :)

Klikken op vergrootglas triggert een javascript functie die met showModalDialog een window opent:

[afbeelding]

Als je een debiteur aanklikt dan wordt het debiteurnummer als parameter via XMLHTTP naar een ASP pagina gestuurd, en die stuurt deze XML response terug:

[afbeelding]

En dat parse ik dan weer en zet het terug in het form:

[afbeelding]

En dat gaat dus ongeveer zo:

Java:
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
//-- modaldialog openen en xml file van debiteurnummer openen
function insertDebiteur (_form) {
    var md      = showModalDialog('selectdebiteur.asp', '', 'center:yes;dialogWidth:500px;dialogHeight:400px;scroll:yes;');
    xmlDebiteur = new XMLFile('./xml/debiteur.xml.asp?debiteurnr=' + md, 'debiteurObject', _form);
}



//-- xml file object
function XMLFile(_url, _handler, _form) {
    this.url        = _url;
    this.handler    = _handler;
    this.form       = _form;
    var ptr         = this;
    
    if (document.implementation && document.implementation.createDocument) {
        
        this.xmlDoc = document.implementation.createDocument("", "", null);
        this.xmlDoc.onload = window[ptr.handler](ptr.xmlDoc, ptr.form);
        
    } else if (window.ActiveXObject) {
        
        this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        this.xmlDoc.onreadystatechange = function () {
            if (ptr.xmlDoc.readyState == 4) window[ptr.handler](ptr.xmlDoc, ptr.form);
        }
        
    } else {
    
        alert('XML not supported');
        return;
    }
    
    this.xmlDoc.load(this.url);
}



//-- xml debiteur handler
function debiteurObject(_xml, _form) {
    
    var debiteur    = new Object();
    var xml         = _xml.getElementsByTagName('debiteur');
                
    debiteur.debiteurnr             = (xml.item(0).getElementsByTagName('debiteurnr')            .item(0).firstChild) ? xml.item(0).getElementsByTagName('debiteurnr')            .item(0).firstChild.nodeValue : '';
    debiteur.factuurnaam            = (xml.item(0).getElementsByTagName('factuurnaam')           .item(0).firstChild) ? xml.item(0).getElementsByTagName('factuurnaam')           .item(0).firstChild.nodeValue : '';
    debiteur.factuurcontactpersoon  = (xml.item(0).getElementsByTagName('factuurcontactpersoon') .item(0).firstChild) ? xml.item(0).getElementsByTagName('factuurcontactpersoon') .item(0).firstChild.nodeValue : '';
    //-- etc...
    
    with (_form.elements) {
        debiteurnr.value            = debiteur.debiteurnr;
        factuurnaam.value           = debiteur.factuurnaam;
        factuurcontactpersoon.value = debiteur.factuurcontactpersoon;
        //-- etc...
    }

}


Koud kunstje, en erg gebruiksvriendelijk :)
Ik vind dat een erg leuk stukje script, maar heb toch een vraag. Waarom heb je ervoor gekozen om dit via een xmlHttpRequest te doen?

Naar mijn idee kand dit net zo makkelijk door het formulier te refreshen en een debiteurnummer mee te geven. Deze zoekt dan bij de opgegeven debiteur de gegevens op en bouwt de pagina opnieuw op.

Ik ben namelijk van mening dat jouw manier veel te omslachtig is. Je roept je server aan, die voert een query uit, gooit dat in een xml-bestand welke vervolgens weer wordt uitgelezen in je javascript.

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
Verwijderd schreef op maandag 17 oktober 2005 @ 15:50:
[...]


Ik vind dat een erg leuk stukje script, maar heb toch een vraag. Waarom heb je ervoor gekozen om dit via een xmlHttpRequest te doen?

Naar mijn idee kand dit net zo makkelijk door het formulier te refreshen en een debiteurnummer mee te geven. Deze zoekt dan bij de opgegeven debiteur de gegevens op en bouwt de pagina opnieuw op.

Ik ben namelijk van mening dat jouw manier veel te omslachtig is. Je roept je server aan, die voert een query uit, gooit dat in een xml-bestand welke vervolgens weer wordt uitgelezen in je javascript.
nu wil ik niet zeggen dat ik nu zoveel verstand ervan heb maar kijk eerst eens waar dit verhaal over gaat...
het gaat hier in dit geval over AJAX-methode
dit houd in dat we op een zeer mooie manier info willen sharen ZONDER dat de pagina ververst moet worden ;) en kan met deze methode kan dit gerealiseerd worden.

jij hebt het over vernieuwen van de pagina/formulier
wat ik (wij) dus niet willen hebben juist! ;)

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


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 27-04 10:06

Pelle

🚴‍♂️

Verwijderd schreef op maandag 17 oktober 2005 @ 15:50:
Ik vind dat een erg leuk stukje script, maar heb toch een vraag. Waarom heb je ervoor gekozen om dit via een xmlHttpRequest te doen?

Naar mijn idee kand dit net zo makkelijk door het formulier te refreshen en een debiteurnummer mee te geven. Deze zoekt dan bij de opgegeven debiteur de gegevens op en bouwt de pagina opnieuw op.

Ik ben namelijk van mening dat jouw manier veel te omslachtig is. Je roept je server aan, die voert een query uit, gooit dat in een xml-bestand welke vervolgens weer wordt uitgelezen in je javascript.
3 redenen:

[list=1]
• Dit is de 'webversie' van een bestaande windows-applicatie, en aangezien sommige gebruikers zo dom zijn als het achtereind van een paard, is het erg wenselijk dat de web-applicatie zo veel mogelijk lijkt op hetgeen ze al kennen.
• Dit is niet zomaar een formulier; per order (want dat is dit, een online orderinvoer) kun je meerdere orderregels hebben, en per orderregel zijn er tientallen specifieke parameters in te stellen, die via een hierarchische manier van modeldialogs ingevoerd worden. Het is niet te doen om dat formulier bij elke wijziging te posten en te processen; daar zit het te gecompliceerd voor in elkaar. Alles wordt met JavaScript gegenereerd en in een aantal JS objecten bijgehouden.
• Dit is gebruiksvriendelijker. Waarom een pagina reloaden als het ook zo kan? Dit is toch veel mooier?

[ Voor 29% gewijzigd door Pelle op 17-10-2005 16:06 ]


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
beter kan jet niet vertellen denk ik :)

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


Verwijderd

Pelle schreef op maandag 17 oktober 2005 @ 16:04:
[...]

3 redenen:

[list=1]
• Dit is de 'webversie' van een bestaande windows-applicatie, en aangezien sommige gebruikers zo dom zijn als het achtereind van een paard, is het erg wenselijk dat de web-applicatie zo veel mogelijk lijkt op hetgeen ze al kennen.
• Dit is niet zomaar een formulier; per order (want dat is dit, een online orderinvoer) kun je meerdere orderregels hebben, en per orderregel zijn er tientallen specifieke parameters in te stellen, die via een hierarchische manier van modeldialogs ingevoerd worden. Het is niet te doen om dat formulier bij elke wijziging te posten en te processen; daar zit het te gecompliceerd voor in elkaar. Alles wordt met JavaScript gegenereerd en in een aantal JS objecten bijgehouden.
• Dit is gebruiksvriendelijker. Waarom een pagina reloaden als het ook zo kan? Dit is toch veel mooier?
Wat betreft de eerste twee punten, kan ik enigzins begrijpen dat je dit doet via een xmlHttpRequest. Dat laatste punt vind ik een vreemde. Ik snap namelijk niet wat er 'mooier' aan zou zijn. in principe merkt de gebruiker niks van beide opties.

Het opbouwen van een pagina gaat minstens zeker zo snel, als een xml verkrijgen en daar de waardes van invullen.

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ik zelf denk dat verschil hem zit in de manier waarop je het zelf wilt oplossen
vb:
je kan een kapotte vaas heel maken door de stukken vast te plakken met tape of je probeerd het mooier te doen met lijm (maar ingewikkelder)
de gebruiker merkt er niet veel van nee want ze kunnen in beide gevallen gewoon weer gebruiken
nu klink dit misschien raar en komt het voorbeeld niet helemaal overeen
maar het punt is daar dat de maker een methode verzint om het probleem op te lossen
welke methode ligt aan jezelf...

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


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 07:44
Verwijderd schreef op maandag 17 oktober 2005 @ 16:16:
[...]
Wat betreft de eerste twee punten, kan ik enigzins begrijpen dat je dit doet via een xmlHttpRequest. Dat laatste punt vind ik een vreemde. Ik snap namelijk niet wat er 'mooier' aan zou zijn. in principe merkt de gebruiker niks van beide opties.

Het opbouwen van een pagina gaat minstens zeker zo snel, als een xml verkrijgen en daar de waardes van invullen.
Het refreshen merkt de gebruiker wel degelijk, de pagina moet opnieuw worden opgebouwd en dat heeft op zijn minst een soort van flits tot gevolg. Belangrijker argument is echter dat een reload gevolgen heeft voor het gebruik van de back-knop van de browser. Ik als domme gebruiker verwacht dat ik op de pagina beland van waaruit ik het formulier heb geopend. Dan moet ik niet door 6 lagen van een incrementeel opgebouwd formulier heen fietsen.

Regeren is vooruitschuiven


Verwijderd

T-MOB schreef op maandag 17 oktober 2005 @ 16:42:
[...]


Het refreshen merkt de gebruiker wel degelijk, de pagina moet opnieuw worden opgebouwd en dat heeft op zijn minst een soort van flits tot gevolg. Belangrijker argument is echter dat een reload gevolgen heeft voor het gebruik van de back-knop van de browser. Ik als domme gebruiker verwacht dat ik op de pagina beland van waaruit ik het formulier heb geopend. Dan moet ik niet door 6 lagen van een incrementeel opgebouwd formulier heen fietsen.
Als je een webapplicatie maakt, die je echt het idee moet geven dat het een standalone applicatie is, werk je over het algemeen toch niet met de toolbars (back/forward/home) van internet explorer :?

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
Verwijderd schreef op dinsdag 18 oktober 2005 @ 14:59:
[...]

Als je een webapplicatie maakt, die je echt het idee moet geven dat het een standalone applicatie is, werk je over het algemeen toch niet met de toolbars (back/forward/home) van internet explorer :?
owjah goed dat je erover begint!! (altijd al al willen weten...)
een vraagje over dat: hoe krijg ik dat dan voor elkaar???
ik bedoel dus die balken weghalen :)

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


Verwijderd

Tijgertje84 schreef op woensdag 19 oktober 2005 @ 15:28:
[...]


owjah goed dat je erover begint!! (altijd al al willen weten...)
een vraagje over dat: hoe krijg ik dat dan voor elkaar???
ik bedoel dus die balken weghalen :)
Met window.open(), kun je verschillende parameters meegeven. Zoals: website die geopend moet worden, breedte, hoogte, statusbar, toolbar, scrollbars etc...

Even googelen. Voor zover ik weet pikken andere browsers deze funtie ook gewoon. Behalve dat firefox de statusbar standaard laat zien.
Pagina: 1