[PHP & JS combo] Form versturen

Pagina: 1
Acties:

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Ik wil graag weten of dit moegelijk is...

Ik ben bezig aan een berichtsysteem voor mijn membersysteem. Nu wil ik graag, dat je op een pagina, een member kan kiezen, en dat je dan op check inbox klikt Als die daarna klopt, moet er een melding komen, en je moet daarna dus een bericht kunnen schrijven. Mocht deze melding dus negatief zijn, krijg je een foutmelding.

Nu wilde ik dat op zo'n manier doen:
Het is dus een php script. We kunnen dus lekker php gaan gebruiken. Nu is dat waar je de member kan kiezen, zo'n keuzelijst, dus een form. Kun je nu intern een form versturen, zodat die dus niet een hele pagina load, maar dat ie dat php gedeelte in een funtie oplost.

Dus: Je vult iets in. Klikt; onklickevent: jsfruntie. In die funtie wordt wat in het form gevuld wordt, gebruikt in een php script.

Nu zijn er ook andere oplossingen, maar die wil ik niet gebruiken. Ik wil zoiets ook op andere dingen toepassen, en daarvoor heb ik zeg maar deze "techniek" voor nodig.

Is dit mogelijk, of heb ik helaas erge pech?!

Alvast bedankt voor je reactie,

Bart

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:58

mulder

ik spuug op het trottoir

Woei, licht het nou aan mij of is je verhaal lichtelijk onbegrijpbaar?

oogjes open, snaveltjes dicht


  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-08 17:05
Begrijpbaar:

FORM, daarin een elementje dat onChange een PHP script laadt met de variabelen uit het form.

En dit zonder de hele pagina opnieuw in te laden...

En het toffe is: het kan nog ook, nl. door je PHP script in een verborgen (i)frame te laden en met je form te laten communiceren...

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Op zondag 26 mei 2002 22:01 schreef maartenba het volgende:
Begrijpbaar:

FORM, daarin een elementje dat onChange een PHP script laadt met de variabelen uit het form.

En dit zonder de hele pagina opnieuw in te laden...

En het toffe is: het kan nog ook, nl. door je PHP script in een verborgen (i)frame te laden en met je form te laten communiceren...
Woohoei! Het gaat dus. Maar, kun je dat een beetje beter uileggen? Hoe moet dat een beetje? Want ik snap nog niet helemaal wat je bedoeld...

PS.
Sorry, voor de slechte uitleg, maar probeer het zelf maar eens, dan snap je het :P

  • Niakmo
  • Registratie: Juni 2001
  • Laatst online: 10-02-2024
In AS zou ik het kunnen maken maar dat is de enige scripting taal die ik beheers :D

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-08 17:05
Je hebt 2 frames, eentje met da naam main en eentje met de naam hiddenframe (die geef je gewoon een height van 0 in de frameset)

Je form op de pagina in frame main:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<form name="frmForm">
...
<input name="variabale"...>
<input type="button" onClick="javascript:dophp(this.form);">
</form>

<script language="JavaScript">
<!--
function dophp(f) {
  parent.hiddenframe.location.href="http://www.site.com/script.php?variabele=" + f.variabele.value;
}
// -->
</script>

Hopelijk heb je em :)

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 07-09 07:02

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Op zondag 26 mei 2002 22:13 schreef zirus het volgende:
In AS zou ik het kunnen maken maar dat is de enige scripting taal die ik beheers :D
Ja! En als je niks te zeggen hebt, kan je ook gewoon je mond dichthouden! :D

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Op zondag 26 mei 2002 22:13 schreef maartenba het volgende:
Je hebt 2 frames, eentje met da naam main en eentje met de naam hiddenframe (die geef je gewoon een height van 0 in de frameset)

Je form op de pagina in frame main:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<form name="frmForm">
...
<input name="variabale"...>
<input type="button" onClick="javascript:dophp(this.form);">
</form>

<script language="JavaScript">
<!--
function dophp(f) {
  parent.hiddenframe.location.href="http://www.site.com/script.php?variabele=" + f.variabele.value;
}
// -->
</script>

Hopelijk heb je em :)
K, ik heb het nu allemaal bekeken, maar als ik het goed begrijp, kan ik (wat ik hier dus boven bedoelde) in die js funtie net zo goed php zetten. die variable, j.variable.value, kan ik die niet in een php script verwerken?
Dus, dat het php de ingevoerde waardes uit die j.variable.value haalt?

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-08 17:05
Met dit:
code:
1
2
3
<script...
parent.hiddenframe.location.href="http://www.site.com/script.php?variabele=" + f.variabele.value;
...</script>

zorg je er voor dat de variabele uit het formulier naar script.php gestuurd wordt, dat was wat je wilde hebben, niet ? :+

Zoals jij bedoelt zal de pagina moeten herladen worden, en met de manier hierboven niet...

  • cutter
  • Registratie: November 2000
  • Laatst online: 28-09-2025

cutter

Wannabe i7 fanboy

Op zondag 26 mei 2002 22:17 schreef Prammenhanger het volgende:

[..]

Ja! En als je niks te zeggen hebt, kan je ook gewoon je mond dichthouden! :D
Dammed Prammenhanger :) da's mijn zin... maar je hebt wel gelijk. :) Vraag gaat over javascript, niet over AS, overbodige opmerking dus idd. En aan de topicstarter leg het aub de volgende keer zo uit dat wij er ook echt iets mee kunnen, het is een beetje vaag allemaal.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:58

mulder

ik spuug op het trottoir

Waarom is er dan php nodig, om wat te bereiken? Dit klinkt eerder als gewoon een clientside oplossing. Anders post je de data gewoon.

oogjes open, snaveltjes dicht


  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Nou, kijk, dit moet er gebeuren.

Als je een member uit de keuzelijst klikt, wordt gekeken of die nog berichtjes kan ontvangen. Dit wordt gecheckt met php. Als die nog ruimte heeft, dan wordt er onder het keuzehokje een gedeelte gezet, waarin je je bericht wilt schrijven. Als je dan je een andere member aanklikt in de keuzelijst, gebeurd weer het zelfde.

Dit is allemaal véél sneller als elke keer een nieuwe pagina te loaden...

Vandaar dus. PHP heeft hiermee eigenlijk maar weinig mee te maken. Het gaat er om, dat het form verstuurd wordt, zonder een nieuwe pagina te openen

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Op zondag 26 mei 2002 22:22 schreef maartenba het volgende:
Met dit:
code:
1
2
3
<script...
parent.hiddenframe.location.href="http://www.site.com/script.php?variabele=" + f.variabele.value;
...</script>

zorg je er voor dat de variabele uit het formulier naar script.php gestuurd wordt, dat was wat je wilde hebben, niet ? :+

Zoals jij bedoelt zal de pagina moeten herladen worden, en met de manier hierboven niet...
Ja, dit kan allemaal wel, maar dan moet ik gaan kloten met farames. In mijn geval een Iframe. En het nadeel daaraan, is dat ze een bepaalde groote hebben. En niet altijd om de pagina passen. Of gaat dat wel met width="100%" en heigth="100%"?
Anders is het probleem opgelost...

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op zondag 26 mei 2002 22:26 schreef Don Facundo het volgende:
Waarom is er dan php nodig, om wat te bereiken? Dit klinkt eerder als gewoon een clientside oplossing. Anders post je de data gewoon.
ik vermoed:

om te checken of die user rechten heeft om die berichten te lezen, naar aanleiding van het inlogsystem

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:58

mulder

ik spuug op het trottoir

Op zondag 26 mei 2002 22:33 schreef oikoyama het volgende:
Nou, kijk, dit moet er gebeuren.

Als je een member uit de keuzelijst klikt, wordt gekeken of die nog berichtjes kan ontvangen. Dit wordt gecheckt met php. Als die nog ruimte heeft, dan wordt er onder het keuzehokje een gedeelte gezet, waarin je je bericht wilt schrijven. Als je dan je een andere member aanklikt in de keuzelijst, gebeurd weer het zelfde.
Dit kun je toch al checken als je de memberlist ophaalt en in de onclick aangeven of de user ruimte heeft?

oogjes open, snaveltjes dicht


  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Op zondag 26 mei 2002 22:49 schreef Don Facundo het volgende:

[..]

Dit kun je toch al checken als je de memberlist ophaalt en in de onclick aangeven of de user ruimte heeft?
Moeilijk doen. Zowieso, kun je dan niet alle bestaande members zien. Bestwel lastig. En als je het anders doet, werkt het precies het zelfde...

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:58

mulder

ik spuug op het trottoir

Op zondag 26 mei 2002 22:52 schreef oikoyama het volgende:

[..]

Moeilijk doen. Zowieso, kun je dan niet alle bestaande members zien. Bestwel lastig. En als je het anders doet, werkt het precies het zelfde...
Waarom? Als een member ruimte heeft kun je erop clicken anders niet. Of je heeft true of flase mee aan een functie.

oogjes open, snaveltjes dicht


  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Op zondag 26 mei 2002 22:59 schreef Don Facundo het volgende:

[..]

Waarom? Als een member ruimte heeft kun je erop clicken anders niet. Of je heeft true of flase mee aan een functie.
Dit klink allemaal leuk en aardig, maar sommige browsers ondersteunen dit niet goed. Ze hebben nl dan nog de tekst in de zelfde kleur. En om nu voor élke member dit te gaan chekken, wordt mijn server ook een beetje overbelast. Als ik er 10 heb OK, maar stel ik heb er 100, en élke member moet als ie een berichtje wil checken, alle members na gaan. Beetje veel server activiteit niet? Soms moet je eerst aan andere dingen denken, ookal kan het andere nóg zo fijn zijn... ;)

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:58

mulder

ik spuug op het trottoir

No offence, ik begrijp nog niet echt wat je nu wilt. Je wilt een lijst met members ophalen uit een database, en de gebruiker de mogelijkheid geven dat als deze op een member klikt een berichtje kan sturen, mits ruimte. Dit moet al mogenlijk zijn als je met bv SQL de lijst ophaald.

oogjes open, snaveltjes dicht


  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Op zondag 26 mei 2002 23:15 schreef Don Facundo het volgende:
No offence, ik begrijp nog niet echt wat je nu wilt. Je wilt een lijst met members ophalen uit een database, en de gebruiker de mogelijkheid geven dat als deze op een member klikt een berichtje kan sturen, mits ruimte. Dit moet al mogenlijk zijn als je met bv SQL de lijst ophaald.
Ja, dit klopt dit kan. Maar ik zit dus met die grote server bezigheid.

Er zijn namelijk een paar dingen die je niet weet. M'n (zelfgemaakte) membersysteem is namelijk best advanced. De members hebben namelijk een status. En des te hoger je status, des te meer berichten je kunt ontvangen, dus des te groter je inbox. Nu zou ik idd kunnen doen wat je zegt, maar dan moet ie eerst alle members uitde database gaan vergelijken op status, en daarna ook nog gaan kijken of die ruimte heeft. Begrijp me niet verkeerd, maar als je dat elke keer moet gebreuren als je alleen maar naar jouw gekozen member een berichtje wilt sturen, is dat wel een beetje héél veel overbodig server gebruik. Kortom, ik heb niets voor niets voor dit gekozen. Ik mag dan pas 16 zijn, maar ik weet wel wanneer mijn .nl een beetje slomer wordt...
Daarom, doe ik dat dus niet in die lijst checken...

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Dit is dus nu ff de tussenstand.

Of iemand kan me vertellen hoe ik dus zo'n IFRAME altijd op de grote van de pagina kan hebben die in de Iframe staat. Dus, 100%.

Of iemand heeft een ander idee hoe ik dus een form kan versturen, en dan niet met een Iframe...

Mij lijkt de eerste het makkelijkst te beantwoorden :+

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:58

mulder

ik spuug op het trottoir

Misschien kun je je db model eens posten, misschien kan ik m'n licht erop laten schijnen en kijken wat de mogenlijkheden er mee zijn.

oogjes open, snaveltjes dicht


  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Voor deze vraag is eigenlijk alleen dit belangrijk:
DB: id, gebruikersnaam, status.

Met deze algemene waardes kun je enorm veel. In de database staat niet hoe groot de inbox is of zo. De inbox van de members is eigenlijk ook virtueel. Alle berichten komen namelijk in een tabel te staan. En naar aanlijding van de status, wordt er bekeken, hoeveel berichten van een bepaalde persoon in die tabel staat, en hoeveel hij naar de status nog mag hebben.

Zou ik dus alles in de keuzelijst willen hebben veranderd, moet er een functie komen voor élke member. Daarin wordt gechecked, wat voor een status die heeft, daarna wordt in de virituele inbox, dus in de tabel gekeken hoeveel berichten er al zijn. De berichten die er al in staan wordt van de berichten die max. bij de status van de member zijn afgetrokken, en dat geeft een waarde. Als die waarde negatief is, moet er niet op de member geklikt kunnen worden.
Dit zou bij elke member moeten gebeuren, en zoals ik al vertelde neemt dit al heel wat server activiteit op.

Daarom is die mogelijkheid bij mij uitgesloten. Geen kans. Het werkt idd wel leuk, maar ik heb geen zin in een slome server...

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

* oh,when? heeft een paar vragen:

- waarom zou je het _niet_ bijhouden in je datamodel? Scheelt je een hele hoop ellende.
- mag ik aannemen dat je MySQL gebruikt?
- indien yes, waarom zou je die query niet uitvoeren op de memberpagina zelf. Ten eerste lijkt het me niet dat je site erveel onder gaat lijden. Ik werk zelf aan sites die tienduizenden pageviews per dag krijgen en die stabiel blijven. Gewoon kwestie van een goed db-model, en je scripts en queries optimaliseren. Kom je al een heel eind mee. MySQL schaalt belachelijk goed tijdens veel concurrent connections.
- Heb nog wel een oplossing ( klutch). Maak een link naar een pagina, bijv checkInboxMax.php en open die in een nieuw window. Daarin check je of de inbox nog ruimte heeft. Zoja redirect dan de pagina ( via javascript > window.opener ) naar een formulier. Zo niet dan laat je de browser crashen ;)

HTH

"You're only as good, as what you did last week."

Pagina: 1