Jump to content


Hiro

Member Since 25 May 2012
Offline Last Active May 27 2012 09:10 AM
-----

Topics I've Started

Change Available Fields Based on Another Fields Selection

26 May 2012 - 04:19 AM

Here is the situation, I have a Quality Assurance database that I am working on. My current fields are

Task Name: (Datatype: VARCHAR)

Task Category: (Datatype: INT (its a referenced ID to another database)) So it matches the Cat_ID to Category Name

Task Description: (Datatype: Text)

IMG_Upload 1: (Datatype: Text) Upload Field 1

IMG_Upload 2: (Datatype: Text) Upload Field 2

Here is what I need, when the user selects the Task Category it needs to change the IMG_Upload Fields so that in the case of Cat_ID 1 only IMG_Upload 1: is shown

and ID2 = IMG_Upload 2: only.

I currently have it set up where when you add a new entry it does not show the upload fields so that when I edit the entry I take the uri_string which is /main/QADatabase/edit/1

The Function then proceeds to delete all non-integers from the string reducing it to 1 (Which is the ID of the QATask, I have a model setup to get the cat_id based on the QATask_ID which returns 2 (in my current database).

I have a switch statement setup in the controller function that changes the edit_fields like so:

switch((int)$category)
{
	 case 1:
		  $crud->edit_fields('cust_id', 'category_id', 'task_description','img_upload1');
	 break;
	 case 2:
		  $crud->edit_fields('cust_id', 'category_id', 'task_description','img_upload2');
	 break;
	 default:
		  $crud->edit_fields('cust_id', 'category_id', 'task_description');
	 break;
}

This seems to work, however it only shows either case 1 or 2 depending on which one I load first unless I clear my history. I think the problem is once render() is run it does not run the code again to get the new uri_string().

Is there an easier way to go about doing this.

Here is the Controller Function:
public function QADatabase() {

		$crud = new grocery_CRUD();

	 $crud->set_theme('datatables');
	 $crud->set_table('qa_database');
	 $crud->set_subject('QA Database');

  $this->load->model('qa_model');

  $category = '';

  $str = uri_string();
  $num = '';
  for( $i=0,$c=strlen($str); $i<$c; $i++ )
   if ( is_numeric($str[$i]) )
	$num .= $str[$i];

  if($num != '')
   $category = $this->qa_model->getCategory($num);


  $crud->add_fields('cust_id', 'category_id', 'task_description');
  switch((int)$category)
  {
   case 1:
	$crud->edit_fields('cust_id', 'category_id', 'task_description','img_upload1');
   break;
   case 2:
	$crud->edit_fields('cust_id', 'category_id', 'task_description','img_upload2');
   break;
   default:
	$crud->edit_fields('cust_id', 'category_id', 'task_description');
   break;
  
  }

	 $crud->required_fields('cust_id');
  $crud->set_relation('category_id','qa_category','cat_name');

  $crud->display_as('cust_id', 'Customer ID')
		   ->display_as('category_id', 'Task Category')
		   ->display_as('task_description', 'Task Description')
		   ->display_as('img_upload1', 'IMG Upload 1')
		   ->display_as('img_upload2', 'IMG Upload 2');

	 $crud->set_field_upload('img_upload1','assets/qa-images/upload1');
     $crud->set_field_upload('img_upload2','assets/qa-images/upload2');

	 $output = $crud->render();		$this->view('grocery_CRUD', $output, 'main_user_management');
	}

Upload to Dynamic Path

25 May 2012 - 07:13 AM

I am working on a database system that will contain images however I would like for the images to uploaded into folders based on the Customer Name. So:

CUSTB001

Would go to /asset/CUSTB001/Images

So what I am asking is in the controller is there a way I can echo the contents of the id to the file path

Like this:
$crud->set_field_upload('file_url','assets/qa/'echo $custID'/images); //This way does not working but its the easiest way to explain what I am trying to do. I have looked in the library code and tried to figure out how the upload is done but I cant find any information regarding the path.

Any help is greatly appreciated.