Support » Plugin: Contact Form DB » Create new record for each selection in a submitted form?

  • Hi there. Amazing plugin!

    I have a form that allows people to select one or more of many items in a selection checkbox list (i.e. place-name1, place-name2, place-name3. The user then enters a two field form – one with a word or phrase and the other with their email address.

    Can I change the settings so that the database actually records each file separately i.e.:

    record1: place-name1 dataField emailField
    record2: place-name2 dataField emailField
    record3: place-name3 dataField emailField

    What’s happending now is my database includes one record:

    place-name1,place-name2,place-name3 dataField emailField

    I’m using Contact Form 7 (another amazing product!)

Viewing 3 replies - 1 through 3 (of 3 total)
  • Does this sound outside of the capabilities of this script? If anyone could shed any light that would be great.

    I’m essentially trying to create (for example) a unique record for each of the multiple checkboxes the user selects and where all three have two other fields that are common.

    I’m taking it this would have to be a capability of either the Contact Form 7 plugin or a custom script that parses out the data before it is archived in Contact Form DB.

    Thanks much!

    I think I’ve managed to do what you guys are looking at.

    I’m working on a booking form which allows the user to book more than one item, I’m using a function similar to the one below to then split booking items off into another table leaving behind the base level information and a reference.

    Meaning that I have one ‘booker’ to many ‘booking items’ with an ID linking them together.

    Here’s a run through of what I’m doing, but based of the OPs example (in the theme functions.php)…

    function multiPost($formData){
        // Check for a field thats only in the first submit, else we'll get looping that breaks saveFormData()
        if( $formData->posted_data['place-name2'] ) {
    	    $formName 		= 'Booking Form';
    	    $additionalForm = array('2');
    	    // Check for additional form items – rinse and repeat if needed
    		if( $formData->posted_data['place-name3'] ) {
    			array_push($additionalForm, '3');
        	// New form submit for each additional form
        	foreach ($additionalForm as $c) {
        		// Additional submission – works fine to a seperate form but not the same.
        		$cfdb = new CF7DBPlugin();
        		$data = (object) array(
        		    'title' => $formNameItems,
        		    'posted_data' => array(
        			    'placename'		=> $formData->posted_data['placename' . $c],
        			    'dataField'		=> $formData->posted_data['dataField'],
        			    'emailField'	=> $formData->posted_data['emailField']
        		// Save new record
        		// We don't need placename2/3/4... in the original record
        		unset($formData->posted_data['placename' . $c]);
        	// Tidy up original record, essentially moving placename1 to placename and then removing placename1 so columns match
        	$formData->posted_data['placename'] = $formData->posted_data['placename1'];
        return $formData;
    add_filter('cfdb_form_data', 'multiPost');

    Hey ch8rt thanks for this response. I’ve been trying to adapt my install but, am code-challenged and I need to find a more out-of-the-box solution since my site is up and running. Thanks much.

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Create new record for each selection in a submitted form?’ is closed to new replies.