1778 Posts in 581 Topics by 555 members
| Go to End | ||
| Author | Topic: | 686 Views |
-
Re: Validate form fields against databse

30 November 2012 at 9:39am
hi dross,
do i understand this right, that you are updating the CardNumbers record right in the function checkVoucherandSourceCode() ?
This function was just for validating.
Setting Registered = '1' should be done after the form was successfully sent. So put it in function doRegister()I just noticed that my validation rule was not complete. It didnt check for Registered = 0, but you added this already to the query.
Btw. what datatype is "Registered"? If you defined it as "Registered" => "Boolean", than you should use
Registered = 1 instead of Registered = '1'Here some code for the doRegister function:
<?php
function doRegister($data, $form) {//Create Member and log them in
$Member = new UrbanMember();
$form->saveInto($Member);
$Member->write();
$Member->login();//Findo or create 'user' group
if(!$userGroup = DataObject::get_one('Group', "Code = 'users'")) {
$userGroup = new Group();
$userGroup->Code = "users";
$userGroup->Title = "Users";
$userGroup->Write();
$userGroup->Members()->add($Member);
}//Add member to user group
$userGroup->Members()->add($Member);// cancel voucher (we dont need to check for an unused voucher here. this has already been checked by the validator)
$CardNumber = DataObject::get_one("CardNumbers", "VoucherNumber = '".Convert::raw2sql($data['VoucherNumber'])."' AND SourceCode = '".Convert::raw2sql($data['SourceCode'])."'");
$CardNumber->Registered = 1;
$CardNumber->write();// Redirect to profile page
if($ProfilePage = DataObject::get_one('EditProfilePage')) {
return Director::redirect($ProfilePage->Link('?success=1'));
}}
?> -
Re: Validate form fields against databse

30 November 2012 at 9:45am
Got it. I'm really sort of a beginner so thanks a lot for you help. Works perfectly!
| 686 Views | ||
| Go to Top |

