Ondersteuning » Code oplossingen gezocht » Formulier opslaan met AJAX

  • Hey,

    Vraagje. Momenteel heb ik een formulier in mijn functions.php file staan wat getoond wordt op aan de “achterkant” dus niet zichtbaar via de website alleen via het CMS.

    Het probleem is dat dit wordt opgeslagen met AJAX. AND I SUCK AT THAT.

    Het volgende is het geval. Via een datum worden voor 12 posities de komende zondagen alleen getoond. Gebruikers kunnen hier aangeven of zij wel of niet op een bepaalde zondag aanwezig zijn.
    Dit gebeurd allemaal dynamisch. Echter kan ik in PHP wel de velden maken e.d. alleen het opslaan wordt hem niet.

    Zou iemand even een blik kunnen werpen zodat er ook dynamisch kan worden opgeslagen?
    Er wordt heel simpel aan elke id een cijfer toegevoegd.

    check:
    AJAX

    <script type="text/javascript" >
    jQuery(document).ready(function() {
    jQuery('#social-button').click(function() {
    jQuery('#savemessageslider').html('Loading...');
    //this is the ajax for general settings
    var teetime = jQuery('#teetime'.$i).val();
    var firsthole = jQuery('#firsthole').val();
    var golfbaan = jQuery('#golfbaan').val();
    var data = {
    action: 'slider_my_action',teetime: teetime,
    firsthole: firsthole,golfbaan: golfbaan
    };
    // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
    jQuery.post(ajaxurl, data, function(response) {
    jQuery('#savemessageslider').html('Gegevens opgeslagen!').hide(2000);
    });
    });
    });
    </script>

    PHP voor de formulieren:

    $teetime_output = "";
    		$teetime_date = strtotime("next sunday");
    		$time = 'teetime';
    		$count = 0;
    		for ($i=0; $i<=11; $i++)
    		{
    			$teetime = $time . $count++;
    			$teetime_output .= '<td>TeeTime: <input type="text" id="'.$teetime.'" style="width:85px;" value="' .  get_option('teetime') . '" /></td>';
    			$teetime_date = strtotime("next sunday", $teetime_date);
    		}	
    
    $teetime_output;

    En dan Javascript voor het ophalen en opslaan.

    function saveSocialSettings() {
    	// set default values
    	if(get_option('teetime') == ""){update_option( 'teetime');}
    
    	if(get_option('firstholes') == ""){update_option( 'firstholes');}
    
    	if(get_option('golfbaans') == ""){update_option( 'golfbaans');}// Save data to option fields
    
    	if(! empty($_POST)){
    					$teetime = $_POST['teetime'];
    		$firsthole = $_POST['firsthole'];
    
    		$golfbaan = $_POST['golfbaan'];
    
    		// save the form values to the option fields
    		update_option( 'teetime'.$i, $teetime.$i);
    
    		update_option( 'firstholes', $firsthole);
    
    		update_option( 'golfbaans', $golfbaan);
    	}
    
    }

    Dus als iemand enig idee heeft hoe ik dit dynamisch opgeslagen kan worden GRAAG!!! ben beetje ten einde raad

2 reacties aan het bekijken - 1 tot 2 (van in totaal 2)
  • Je input veld moet je een variable name geven (bijvoorbeeld teetime_1, teetime_2, etcetera) en vervolgens doe je dat ook in je onderste stukje; maar dan loop je ze door met de $_POST loop om de opgehaalde data op te halen, en sla je het op zoals het script het al doet.

    In je bovenste javascript moet je dan

    var teetime_1 = jQuery('#teetime'.$i).val();

    herhalen voor je 12 items, en deze mee sturen in je data veld (waar alle input velden staan opgesomt).

    Thread starter mvanboordt

    (@mvanboordt)

    Mijn input veld heeft een variabele naam
    elk veld krijgt de naam “teetime” met de datum.

    ik moet alleen de $_POST loop maken.

    Die ga ik ff opzoeken

    dank

2 reacties aan het bekijken - 1 tot 2 (van in totaal 2)
  • Het onderwerp ‘Formulier opslaan met AJAX’ is gesloten voor nieuwe reacties.