login  Naam:   Wachtwoord: 
Registreer je!
 Forum

public/index/index bij submit form (Opgelost)

Offline DriesA - 02/03/2011 19:45 (laatste wijziging 03/03/2011 09:32)
Avatar van DriesALid Hey,

Hier ben ik met mijn volgende beginnersvraag:

Ik ben min of meer mijn weg aan het vinden in het Zend-framework en heb de formulieren ook al wat onder de knie.
Het enige dat nu niet in orde is, is dat wanneer ik een formulier (aangemaakt in de IndexAction van de IndexController) submit, de url van mijn browser aangepast wordt naar /public/index/index terwijl ik /public had verwacht.

Een ander gevolg, als ik een link naar action /index/register maak in de pagina die te zien is op /public, wordt ik correct doorverwezen naar een nieuw formulier dat ik maak maar dat de url dan wordt aangepast naar /public/index/register. Submit van dat 2de formulier resulteert dan in een url /index/index/register, wat dus in de controller een submit geeft van het eerste formulier.

Misschien iets gemakkelijker met enige code (als er tevens enige verbeteringen te zien zijn in mijn huidige werkwijze, tips zijn altijd welkom):
Indexcontroller:
Plaatscode: 140749

LoginForm:
Plaatscode: 140750

RegisterForm:
Plaatscode: 140751

Nog enige code nodig?
Waarschijnlijk een zeer simpele oplossing dat ik over het hoofd zie.

Alvast bedankt.

7 antwoorden

Gesponsorde links
Offline avdg - 03/03/2011 19:17 (laatste wijziging 03/03/2011 19:26)
Avatar van avdg PHP gevorderde Misschien dat je beter vertrouwd op Zend_Auth en Zend_Acl: Zend_Auth neemt het deel waarin de gebruiker inlogt voor zijn rekening terwijl Zend_Acl de rechten van de gebruiker op zich neemt.

En opnieuw: haal zo veel mogelijk code uit de controller, dit voor de overzicht van je code 
Offline DriesA - 03/03/2011 21:14
Avatar van DriesA Lid Hey avgd,

Bedankt voor de tip, ik zal het zeker en vast bekijken.
Maar dit lost nog niet echt mijn probleem op van de urls bij het submitten van een formulier.

Mvg,
Dries
Offline avdg - 03/03/2011 22:06 (laatste wijziging 03/03/2011 22:13)
Avatar van avdg PHP gevorderde Misschien door
  1. $controller->setBaseUrl('http://localhost/public/');

al heb ik mijn twijfels of dat gaat helpen.

Dat de url vanachter index/index is, speelt normaal geen rol. Dit blijft een link naar dezelfde controller en action. Het is meer waarschijnlijk dat er een bug in zit (in ofwel ZF ofwel in jouw applicatie), maar zeker ben ik er nog niet van.

Edit: het lijkt me op de setAction in de form, maar probeer eerst bovenstaande code in je bootstrapper te zetten.
Offline Realtec - 04/03/2011 10:47 (laatste wijziging 04/03/2011 10:52)
Avatar van Realtec HTML interesse Probeer eens in je form een slash voor de set action string te plaatsen

  1. $this->setAction('/index/index')


Je kan in je httpd.conf van je apache server ook een virtuele server aanmaken zodat je gewoon naar localhost kan browsen voor je project op je lokale webserver.

Dit is wat ik gebruik:
DocumentRoot "C:/Program Files (x86)/Zend/Apache2/htdocs/Realtec/public"
Offline DriesA - 05/03/2011 13:08
Avatar van DriesA Lid Hoi,

Bovenstaande lost het helaas niet op. Maar als ik './register' gebruik (dus enkel de action) komt hij er wel.

Maar dan blijft mijn probleem nog steeds dat de url dan http://localhost/myProject/public/index/register is en ik zou graag willen dat het http://localhost/myProject/public/ is nadat ik een formulier submit. Anders heb ik problemen met het tonen van foto's omdat het path verschilt van in de beginsituatie.

Bv. Initieel is het /public en kan ik naar mijn afbeelding verwijzen als ./media/images/Logo.jpg, maar na de submit van het formulier is dat niet meer correct. Want dan is de url /public/index/index en zou ik de afbeelding moeten tonen als ./././media/images/LogoAbes.jpg (of zoiets).
Offline MiST - 05/03/2011 15:26
Avatar van MiST Lid ZF sites steunen heel erg op het gebruik van vhosts. Het is dan ook van belang dat je die instelt of ze zo instelt dat je van die public map verlost bent.

Het feit dat je registerAction in je indexController zit, zorgt ervoor dat je bij het uitvoeren van registerAction steeds op /index/register terecht komt.

tenzij je als laatste lijn van je registerAction zet:

  1. $this->_redirect('/');


Hiermee word je terug naar je indexaction in je indexcontroller gebracht.
Offline DriesA - 06/03/2011 10:37 (laatste wijziging 06/03/2011 12:04)
Avatar van DriesA Lid Hoi Mist,

Met jou oplossing wordt telkens de index-actie aangeroepen uit de index-controller met als gevolg dat ik dus enkel het formulier te zien krijg dat daar aangemaakt wordt.

Maar ik denk dat ik het zelf gevonden heb: als ik telkens de url meegeef aan de view vertrekkende van de baseurl, lijkt het wel te lukken!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s