Form eerst dan ASP

Pagina: 1
Acties:

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
MMh komt weer terug op mijn oude dilemma. Ik heb dus een knop met een asp lus erbij. Het probleem zit hem niet dat ik de form. Maar in het feit dat de aspcode op den duur wordt uitgevoerd ipv na de form te kijken.
Ik heb geprobeerd mijn asp code "in" de knop te stoppen mbv een onclick, maar hij voert als ik op f5 druk nog steeds de lus uit, terwijl ik niet op de knop heb gedrukt.

<form method="post" name="knop" id=form1 name=form1>
<tr>
<td></td><td><input type="submit" id=submit1 name=submit1 Onclick="<% Hier had ik de aftrek lus staan, maar hij reageert nog niet op de knop%>" value="Start Constructie" ></td><td></td>
</tr>
</form>
</table>


Hoe kan ik de form (of de asp) nou zo programmeren dat ie dus bij de knop de lus pas uitvoert, een if heeft bij mijn lus niet veel nut, omdat ik niet met invul vakken werk. Er wordt gekeken of aan een waarde wordt voldaan, zo ja wordt de knop getoont en moet ie bij het drukken van de knop reageren op de lus (hij reageert dus nu direct al op de lus zonder de knop. Ik heb ook al met true en false gewerkt (dus if knop is true then luss), maar dan leest ie nog over de lus.
Iemand een id?

Verwijderd

Wat wil je nou eigenlijk precies? Probeer het nog eens uit te leggen maar dan in een begrijpelijke bewoording..

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Je vraagstelling is wat crytisch en eigenlijk zou ik je daarom niet moeten helpen.

maar vooruit een cryptisch antwoord. uit het antwoord heb ik op de plaatsen van de #'s een woord weggelaten. dat woord staat onderaan.

Ik denk dat je clientside en # door elkaar haalt.
je kun # serverside VB code achter een # hangen, tenzij je # achter een # request hangt.

serverside,geen,knopje,het,aparte

Localhost, sweet localhost


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

Zie ik nou dubbel, offe... :?

Nogmaals:
10:
Je asp code wordt op de server uitgevoerd, en genereert html welke naar de client wordt gestuurd.
De klik op de knop bij de client thuis (:P). Server is niet gelijk aan client.
Oftewel, als er op de knop wordt geramt, wordt je form gesubmit.
En dan kom je weer op de server, waar je kan kijken of er een form gesubmit is, en zo ja, de waardes uit de form lezen, ermee rekenen, wat je maar wilt.
En daarna wordt er weer html code uitgespuugt, waarna de form er weer staat, en zit je weer op de client.
Goto 10

We zijn hier niks te beroerd om te helpen, maar dit is wel zo ontzettend "lees een tutorial".....
Ik weet niet hoe ik zonder een stuk code hier te plakken duidelijker kan uitleggen hoe het werkt...

Exact expert nodig?


  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Nou zou mijn best doen.

Ik heb een programma'tje waar je een gebouw bouwt

Mijn programma bestaat uit het volgende:

1:Er wordt weergegeven welk gebouw in de maak is plus resterende tijd (is gedaan)
2:Er wordt weergegeven welk gebouw het volgende is wat je kunt produceren (is gedaan)
3:Controle functies (genoeg geld, tijd al op 0 enz, is gedaan)
4:De gebruiker moet op constructie starten klikken als de tijd van het gebouw dat gebouw wordt 0 is (lees af is).

Dat laaste is juist het probleem en zou het ff uitleggen
Als de gebruiker genoeg resources heeft en de tijd is 0 (dus is klaar) geeft ie een knop weer. De gebruiker klikt vervolgens op die knop en het geld wordt afgetrokken van zijn hoeveelheid (aangepast in de database etc, maar doet er nu ff niet toe). Het probleem is bij mij hij kijkt van heb je genoeg geld (en tijd = 0):
Zo niet, geef msg
Zo ja, geef button en wanneer de gebruiker op de button klikt productie volgende gebouw starten en geld aftrekken.

Wat doet ie nu: Wanneer ik genoeg geld heb voert ie de bouwopdracht direct al uit, zonder dat ik op de button heb geklikt.

Wat heb ik geprobeerd:
True en false, if knop is true then doe aftrek lus else end if (bij true doet ie niets en blijft de knop in beeld en bij false voert ie direct weer de asp lus uit)
Met een onclick commando in de knop. Onder onclick de aftreklus te zetten, maar hij voert direct weer de lus uit
De lus op verschijden plekken in de form gezet
Met een actionlus geprobeerd, hij voert weer direct de lus uit bij genoeg geld.

Hoop dat het een beetje duidelijk is nu.

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Op maandag 10 december 2001 16:47 schreef CrazyD_at_work het volgende:
Zie ik nou dubbel, offe... :?

Nogmaals:
10:
Je asp code wordt op de server uitgevoerd, en genereert html welke naar de client wordt gestuurd.
De klik op de knop bij de client thuis (:P). Server is niet gelijk aan client.
Oftewel, als er op de knop wordt geramt, wordt je form gesubmit.
En dan kom je weer op de server, waar je kan kijken of er een form gesubmit is, en zo ja, de waardes uit de form lezen, ermee rekenen, wat je maar wilt.
En daarna wordt er weer html code uitgespuugt, waarna de form er weer staat, en zit je weer op de client.
Goto 10

We zijn hier niks te beroerd om te helpen, maar dit is wel zo ontzettend "lees een tutorial".....
Ik weet niet hoe ik zonder een stuk code hier te plakken duidelijker kan uitleggen hoe het werkt...
Nou zoals ik al heb gezegt (leek me wel duidelijk) ik werk dus NIET met invoerwaarden die de gebruiker invult, dan was het wel gelukt. Ik werk dus alleen met een knop waar op geklikt wordt en die een lus uitvoeren moet.

En een code staat wel in mijn oude topic (maar heb hem weggelaten want mensen vonden hem te groot of keken er niet na)

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

Je laatste uitleg wat je doet is de duidelijkste tot nu toe... :) Probeer op die manier een 1e post te doen en 't maakt het een stuk duidelijker :)

Als je meerdere keren een button toont waarop geklikt moet worden (bv om eerdere stappen door te lopen), kun je bv een status-veldje gebruiken (hidden textveld met een nummertje of zo in welke fase je zit), en als er dan de form gepost wordt, en de status is de juiste, dan je code uitvoeren.

Met Request.ServerVariables("REQUEST_METHOD") = "POST" kun je opvangen of er gepost is.

Exact expert nodig?


  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Mhh zo'n oplossing heb ik ook al op school gehoord, maar als goed begreep zaten daar ook problemen.

Maar ff kijken of ik het snap, ik heb dus 2 knoppen 1 zichtbare en onzichtbare.
Ik heb een variable in die knop waar ik een nummer aan koppel, die zet ik op 0 en als ik op de zichtbare knop klik wordt die waarde 1? en dan met if status = 1 then aftreklus?

Zal het nog eens proberen

Verwijderd

Op maandag 10 december 2001 17:46 schreef blijhoofd_bennie het volgende:
Maar ff kijken of ik het snap..
Ik heb het vermoeden van niet. Zal proberen het nog 1 keer uit te leggen, eerst in het kort, dan iets uitgebreider.

Kort:
ASP/Webscripting is GEEN VISUAL BASIC

Lang:
Je kunt geen ASP in je OnClick stoppen. De OnClick wordt clientside uitgevoerd en dat kan alleen met javascript.
Wat jij wilt is in je file (waarschijnlijk helemaal bovenaan) kijken of er op de knop geclicked is en zoja dan doen wat je in je "OnClick" wilt hebben. Dat checken of er geclicked is doe je dus zoals 2 posts geleden beschreven..

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Ik wil iedereen al vast bedanken voor de hulp (zoals je gemerkt heb ben ik behoorlijk nieuw in asp)

Maar had weer een vraagje over jullie oplossing van het probleem dus : Request.ServerVariables("REQUEST_METHOD") = "POST"

Als mijn knop submit is zou dat post wel submit moeten worden

Dit is wat ik nu heb, dus vertel me als ik de functie niet op de goede manier gebruik.

%>
<form method="POST" id=form1 name=form1 >
<tr>
<td></td><td><input type="submit" id=submit1 name=submit1 name="knop" value="Start Constructie" ></td><td></td>
</tr>
</form>

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then de aftreklus

Maar je nog steeds hetzelfde probleem hij blijft de lus uitvoeren, dus kan iemand mij zeggen hoe ik die lus goed declareer (ja sorry ben behoorlijk irritant)

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
* Gert vind de term aftreklus ook enigszins niet passen

maargoed

Als je nu in je formtag nog action = <%= Request.ServerVariables("SCRIPT_NAME") %> en het meukje code bovenaan de pagina zet, dan kom je erg dicht in de buurt.

Verwijderd

je kan het toch gewoon zo doen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%
'we kijken of er geklikt op de knop is
IF Request.Form("knop") = "Start" Then
    'hier de acties die uitgevoerd moeten worden
    'in jouw geval iets van:
    aftreklus()
END IF
%>
<form method="POST" id=form1 name=form1 >
    <tr>
      <td>
      </td>
      <td>
        <input type="submit" id=submit1 name=submit1 name="knop" value="Start Constructie" >
      </td>
      <td>
      </td> 
    </tr>
</form>

of heb ik het nou helemaal verkeerd begrepen :?

  • MF
  • Registratie: April 2000
  • Laatst online: 15-09 13:06

MF

Take a Seat

volgens mij wel ja :P hij wil eest de form en dan pas de ASP code. Ik snap het nut er niet van maar ok. Het was veel handiger geweest om de form te laten linken naar een andere pagina als er op de knop wordt geramt.

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Op maandag 10 december 2001 21:26 schreef Thomassso het volgende:
je kan het toch gewoon zo doen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%
'we kijken of er geklikt op de knop is
IF Request.Form("knop") = "Start" Then
    'hier de acties die uitgevoerd moeten worden
    'in jouw geval iets van:
    aftreklus()
END IF
%>
<form method="POST" id=form1 name=form1 >
    <tr>
      <td>
      </td>
      <td>
        <input type="submit" id=submit1 name=submit1 name="knop" value="Start Constructie" >
      </td>
      <td>
      </td> 
    </tr>
</form>

of heb ik het nou helemaal verkeerd begrepen :?
Dit pakt ie niet hij doet het weer direct :? dus zonder dat ik op de knop druk... is er wat mis met mij iis ofzo?

Ik heb deze lus ook al van Misterfreeze gekregen:

CODE = Request("CODE") <<<DIT
' wordt uitgevoerd als de gebruiker genoeg resources heeft
if not CODE = "YES" then <<< DIT
%>
<form method="submit" name="knop" id=form1 name=form1>
<tr>
<td></td><td><input type="submit" id=submit1 name=submit1 value="Start Constructie" ></td><td></td>
</tr>
</form>
<%
end if
if CODE = "YES" THEN <<<DIT
'aanpassen van resource waarden in de tabel gebruiker
De waarde verminderaar lus :P (zo beter ;))
end if

Maar daar blijft ie steeds bij de knop hangen als ik er op ram.

Verwijderd

Op maandag 10 december 2001 23:27 schreef blijhoofd_bennie het volgende:
Maar daar blijft ie steeds bij de knop hangen als ik er op ram.
Even een tipje tussendoor: Je zou echt eens moeten proberen je blijhoofdbenniecomputertaaltje te converteren naar iets dat vrij algemeen te begrijpen is. We kunnen wel een beetje gokken wat het betekent maar daar schiet je zelf ook niet mee op. Als je bedoelt dat de server maar bezig blijft met het afhandelen van je request (het submitten van de form) zeg DAT dan en niet dat ie "bij de knop blijft hangen"...

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Op maandag 10 december 2001 23:34 schreef fladder het volgende:

[..]

Even een tipje tussendoor: Je zou echt eens moeten proberen je blijhoofdbenniecomputertaaltje te converteren naar iets dat vrij algemeen te begrijpen is. We kunnen wel een beetje gokken wat het betekent maar daar schiet je zelf ook niet mee op. Als je bedoelt dat de server maar bezig blijft met het afhandelen van je request (het submitten van de form) zeg DAT dan en niet dat ie "bij de knop blijft hangen"...
MMhh dacht dat hangen vakjargon was, maar uuh

Wat ik wilde zeggen met dat laaste stuk.
If NOT CODE="YES"
knop
End if
IF CODE="YES"
lus
End if

Hij blijf de knop steeds weergeven (en dus worden de waarden in de database niet aangepast)

Off-topic
praat ik zo onduidelijk :'(
Off-topic

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

Op maandag 10 december 2001 23:43 schreef blijhoofd_bennie het volgende:
Wat ik wilde zeggen met dat laaste stuk.
If NOT CODE="YES"
knop
End if
IF CODE="YES"
lus
End if
Draai het iets om, en gooi die check of er gepost is of niet erbij, zodat je iets krijgt als:

controle of knop getoont mag worden

als knop_mag_getoont_worden dan:
- check of er gepost is. Zo nee, form tonen. Zo ja, lusje induiken.

Iets duidelijker zo? Je doet eerst de benodige controles om te kijken of de knop wel of niet getoont mag worden. Als die controles goed zijn, kijk je of er zojuist een form gepost is (moet natuurlijk wel _de_ form zijn en niet een eerdere form). Als die form niet gepost is, toon je de form met de button. Als er wel gepost is (als erop die knop geramt is dus), ga je je lusje uitvoeren.
Off-topic
praat ik zo onduidelijk :'(
Off-topic
Hmmm een probleem uitleggen is altijd lastig ;)
Uitleggen wat je bedoelt als oplossing trouwens ook :)

Exact expert nodig?


  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
[quote]Op dinsdag 11 december 2001 00:09 schreef Crazy_D het volgende:

[..]

Draai het iets om, en gooi die check of er gepost is of niet erbij, zodat je iets krijgt als:

controle of knop getoont mag worden << dit heb ik al, maar die lus heb ik er niet bij gezet (mijn controle = als de gebruiker genoeg geld heeft toon knop anders meld te weinig geld)

als knop_mag_getoont_worden dan:
- check of er gepost is. Zo nee, form tonen. Zo ja, lusje induiken << Heb ik toch nu met dat
IF IS NOT CODE="YES" then
knop
end if
IF CODE="YES"
lus
end if
(heb ook al met else gewerkt) De lus blijft in deze situatie altijd de knop weergeven. Hij voert dus niet die waarde verminderaar uit.

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

Op maandag 10 december 2001 23:27 schreef blijhoofd_bennie het volgende:

CODE = Request("submit1") <<<DIT
' wordt uitgevoerd als de gebruiker genoeg resources heeft
if not CODE = "YES" then <<< DIT
%>
<form method="submit" name="knop" id=form1 name=form1>
<tr>
<td></td><td><input type="submit" id=submit1 name=submit1 value="Start Constructie" ></td><td></td>
</tr>
</form>
<%
end if
if CODE = "YES" THEN <<<DIT
'aanpassen van resource waarden in de tabel gebruiker
De waarde verminderaar lus :P (zo beter ;))
end if

Maar daar blijft ie steeds bij de knop hangen als ik er op ram.
je moet de request("naam van knop") ook wel de naam van de knop geven.

en nooit if not code = "yes" maar:
code:
1
if code = value then

* disjfa kan verder ook niet uitleggen, maar hoopt dat het werkt :7

disjfa - disj·fa (meneer)
disjfa.nl


  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 15-09 11:04

Basszje

Reisvaap!]

En eigenlijk ook liever niet op string controleren voor dat soort dingen, maar beter getallen gebruiken.

Als je dan toch strings moet vergelijken doe dat tenminste dit : if strcomp(val1,val2) = 0 then .
Scheelt een hele berg problemen en fouten.

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Verwijderd

ok, zoals ik het nu begrijp zou de pagina er ongeveer zo uit moeten zien:

- kijk of er geklikt is:
- als geklikt is hier die 'aftreklus' van je
- als er niet geklikt is:
- formpje laten zien.

dan zou het script er toch gewoon zo uit moeten zien:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%
IF Request.Form("submit1") = "Start Constructie" Then
    'hier de acties die uitgevoerd moeten worden
    'in jouw geval iets van:
    aftreklus()
ELSE
%>
<form method="POST" id=form1 name=form1 >
 <tr>
  <td>
  </td>
  <td>
   <input type="submit" id=submit1 name=submit1 name="knop" value="Start Constructie" >
  </td>
  <td>
  </td> 
 </tr>
</form>
<%
END IF
%>

dit zou gewoon moeten werken. :)
Pagina: 1