processing form data with ajax

Question

I have a form coded below

 <form id="language-registration">
   <?php
    global $wpdb;
  $results=$wpdb->get_results('SELECT * FROM keeled;', ARRAY_A);
  $keeled=$wpdb->get_results('SELECT `id`, `keel`, COUNT(keel) as `count` FROM `voorkeel` GROUP BY keel;', ARRAY_A);
  ?>
  <?php foreach($keeled as $k) { ?>
  <p>
  <?php echo $k['keel'] . " " . $k['count'] . "/20";?>
  </p>
  <?php }?>
  <p>
  <label for="name">Nimi</label>
  <input type="text" name="nimi" id="nimi" value=" " size="30" tabindex="1" />
  </p>
  <p>
  <label for="klass">Klass</label>
  <input type="text" name="klass" id="klass" size="30" value=" " tabindex="2" />
  </p>
  <p>
  <label for="keel">Keel</label>
  <select name="keel" id="keel">
  <option selected="selected">Vali keel</option>
  <?php
    foreach($results as $r) { ?>
      <option value="<?php echo $r['keel'] ?>"><?php echo $r['keel'] ?></option>
  <?php
    } ?>
</select> 
  </p>
  <p>
  <input type='button' id='submit' name='submit' value='Submit'/>
  </p>
  </form>

This is my ajax callback in function.php

function post_language(){
  $nimi = $_POST['nimi'];
  $klass = $_POST['klass'];
  $keel= $_POST['keel'];
  global $wpdb;
  $wpdb->insert(
    'voorkeel',
    array(
      'nimi' => $nimi,
      'klass' => $klass,
      'keel' => $keel
     ),
    array(
      '%s'
    )
  );

  die();
  return true;
  }
  //
  add_action('wp_ajax_post_post_language', 'post_post_language'); // Call when user logged in
  add_action('wp_ajax_nopriv_post_language', 'post_language'); // Call when user in not logged in
  function add_our_script() {

   wp_register_script( 'ajax-js', get_template_directory_uri() . '/scripts/keeled.js', array( 'jquery' ), '', true );
   wp_enqueue_script( 'ajax-js' );

   }
   add_action( 'wp_enqueue_scripts', 'add_our_script' );

this is my keeled.js

jQuery(document).ready(function() {
    jQuery("#submit").click(function() {
        var nimi = jQuery("#nimi").val();
        var klass = jQuery("#klass").val();
        var keel = jQuery("#keel").val();
        jQuery.ajax({
            cache: false,
            type: 'POST', // Adding Post method
            url: "/wp-admin/admin-ajax.php", // Including ajax file
            data: { "action": "post_language", "nimi": nimi, "klass": klass, "keel": keel }, // Sending data dname to post_word_count function.
            success: function(data) { // Show returned data using the function.
                alert(data);
            }
        });
    });
});

But nothing happens?
i try first time to enter data into database via ajax in wordpress.

0
, Martin Tee 3 years 2020-05-30T13:10:23-05:00 0 Answers 88 views 0

Leave an answer

Browse
Browse