Jump to content

Need help to use .ini file settings to create php code


andrey613

Recommended Posts

I'm new to .ini and php. I'm using PFBC to generate form fields. This is the code sample to generate one form field:

 

$form->addElement(new Element\T_COMPANY("", "company", array(

"required" => 1,

"placeholder" => "*Bedrijf:",

)));

 

I need to read an .ini file and based on what is in that .ini to generate one or more lines of code to make the form field. The .ini file will contain some thing like :

 

fields[company] = T_COMPANY,"","company",1,"*Company"

where T_COMPANY is the identifier to generate this block of code $form->addElement(new Element\T_COMPANY( next "" is the identifier for "" in the php code next "company" is the identifier for "company" in the php code next  1 identifier for "required" => 1, in the php and the last one "*Bedrijf" identifier for "placeholder" => "*Bedrijf:", Any idea on how to do this ? So I need to construct this in php

 

$form->addElement(new Element\T_COMPANY("", "company", array(

"required" => 1,

"placeholder" => "*Bedrijf:",

)));

 

  from the array generated using .ini file.

Link to comment
Share on other sites

I tried to use the array generated from the .ini settings and use "foreach" to generate the syntax needed to generate the form element

 

foreach ($formConfig as $elementConfig) {
switch (strtolower($elementConfig['type'])) {
  case 'text':
    $className = 'Element\T_COMPANY';
    break;
    default:
      throw new Exception();
      break;
  }
  $formElement = new $className("", "Required", array( 
    "required" => 1,
    "placeholder" => "*Bedrijf:",
    ));
  $form->addElement($formElement);
}
$form = new Form($formConfig);
 
But this is not working ......
Need help pls
Link to comment
Share on other sites

I just love when people say "it's not working" because it tells us exactly what to look for when trying to hope you.

 

Can you possibly tell us what is happening? Are you just getting a blank screen? Are you getting error messages? Are you getting any meaningful output or results? Have you tried adding some debugging code to echo out values along each step of the process so you can track how far your code gets before things go south?

 

PS - Please use the suggested forum tags when posting code. Wrap your code in the "code" tags which are the words 'php' and '/php' wrapped in square brackets. Like this:

 

$var = 1;

Link to comment
Share on other sites

I managed to generate the code blocks that I need for the form and this is what I have done:

foreach ($ini_array['FORM_SETTINGS'] as $type => $fieldsData) {


if ($fieldsData['type'] == 'HTML'){
$className = "PFBC\\Element\\{$fieldsData['type']}";
$form->addElement(new $className($fieldsData['string']
));
continue;}


if ($fieldsData['required'] == true){
$className = "PFBC\\Element\\{$fieldsData['type']}";
$form->addElement(new $className($fieldsData['label'], $fieldsData['id'], array(
     'required' => $fieldsData['required'],
       'placeholder' => $fieldsData['placeholder'],
     )
     ));
}


if ($fieldsData['required'] == false){
$className = "PFBC\\Element\\{$fieldsData['type']}";
$form->addElement(new $className($fieldsData['label'], $fieldsData['id'], array(
       'placeholder' => $fieldsData['placeholder'],
     )
     ));
}


  
}

Is there a way to improve this? One more issue is when I need to generate radio buttons, I use this:

$form->addElement(new Element\Radio("Radio Buttons:", "RadioButtons", $options));
$options = array("Element 1", "Element 2", "Element 67");

What do I need to add in my block of code to make an if statement that will generate the radio buttons ?

Edited by andrey613
Link to comment
Share on other sites

You are using something interface (framework?) that I am unfamiliar with. Perhaps post on a forum that can help you with that specific technology? If your code is correctly using it to generate other types of fields, then maybe you need to read the manual to see how other fields need to be done.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.