WordPress.org

Forums

Ajax response is 0 . How to solve? (2 posts)

  1. matthewpolld
    Member
    Posted 1 year ago #

    I want to add two numbers together and display the total in the console.log. . I get a 0 in the console log, which obviously means the request hasn't been sent, but I don't know why?

    Can anyone help?

    activate2.php (main file)

    add_action( 'wp_enqueue_scripts', 'inputtitle_submit_scripts' );
    add_action( 'wp_ajax_ajax-inputtitleSubmit', 'myajax_inputtitleSubmit_func' );
    add_action( 'wp_ajax_nopriv_ajax-inputtitleSubmit', 'myajax_inputtitleSubmit_func' );
    
    function inputtitle_submit_scripts() {
      wp_enqueue_script( "inputtitle_submit", plugin_dir_url( __FILE__ ) . 'js/inputtitle_submit.js', array( 'jquery' ) ); // new line
      wp_localize_script( 'inputtitle_submit', 'PT_Ajax', array(
            'ajaxurl'       => admin_url( 'admin-ajax.php' ),
            'nextNonce'     => wp_create_nonce( 'myajax-next-nonce' ))
        );
        }
     function myajax_inputtitleSubmit_func() {
            $nonce = $_POST['nextNonce'];
        if ( ! wp_verify_nonce( $nonce, 'myajax-next-nonce' ) )
            die ( 'Busted!');
    
        $numwelds = isset($_POST['numberofwelds']) ? $_POST['numberofwelds'] : '';
    $numconwelds = isset($_POST['numberofconwelds']) ? $_POST['numberofconwelds'] : '';
    
    if (is_numeric($numwelds) && is_numeric($numconwelds))
    {
        $total = $numwelds + $numconwelds;
        $response = json_encode($total);
        header("Content-Type: application/json");
        echo $response;
        exit;
    }
    }
     function include_jQuery() {
        if (!is_admin()) {
            wp_enqueue_script('jquery');
        }
    }
    add_action('init', 'include_jQuery');
    
    add_action( 'init', 'register_shortcodes' );
    function register_shortcodes() {
        add_shortcode( 'displaycalcs', 'mp_calcs_display' );
    }
    function mp_calcs_display() {
    
                $output = <<<HTML
    
    <form action="" method="post" name="formsubmit" >
    <h1> Process </h1>
    <p> operation type always robot </p>
    Number of welds: <input type="number" name="numberofwelds" id="numberofwelds"  >
    Number of construction welds: <input type="number" name="numberofconwelds" id="numberofconwelds"  >
    Total one: <input type="text" name="totalone" id="totalone" disabled>
    <input type="submit"  value="Calculate" id="formsubmit" name="formsubmit" >
    <div id="result"> </div>
    </form> 
    
    HTML;
        return $output;
    }

    js/inputtitle_submit.js

    jQuery(document).ready( function($) {
    (function($) {
    $(document).ready(function(){
       $('#formsubmit').click(function(){
      $.post(
      PT_Ajax.ajaxurl,
            {
           action : 'ajax-inputtitleSubmit',
           noofwelds : $('input[name=numberofwelds]').val(),
           noofconwelds : $('input[name=numberofconwelds]').val(),
           nextNonce : PT_Ajax.nextNonce
            },
      function( response ) {
         console.log( response );
            }
            );
          return false;
    }); 
    
    });
    })(jQuery);
    });
  2. matthewpolld
    Member
    Posted 1 year ago #

    Sorted:

    Set POST vars noofwelds and noofconwelds, then try to access numberofwelds and numberofconwelds in PHP.

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags