Как отправить значение формы из одного файла в другой в плагинах - PullRequest
0 голосов
/ 28 марта 2019

iam создает плагин и iam оборачивает все функции в классе. Теперь проблема в том, что я хочу передать значение формы из одного файла (cube-tracking.php) в другой файл (fetch_orders.php), и я делаю это, используя ajaxно код ответа ajax, показывающий «data» null.

, когда я передаю значение формы без ajax на другую страницу его отображения, но я хочу, чтобы это происходило с использованием ajax.i пытался использовать простые функции и, альтернативно, использовать классы, но егоничего не делать.

1) cube-tracking.php

class mycube
{
public function __construct()
{ 
  add_shortcode('cube_tracking_form',array(&$this,'tracking_form'));
  add_action('wp_ajax_tracking_form',array(&$this,'tracking_form'));
  add_action('wp_enqueue_scripts',array(&$this,'tracking_css_js'));
 } 
 public function tracking_form()
 {
?>
    <div id="mychatform">
 <div id="chatbody">
    <div id="message">
    </div>
 </div>
 <form name="mytrackingform" id="mytrackingform" action="<?php echo    plugin_dir_url(__FILE__).'fetch_orders.php'?>" method="post">
<input type="text" name="tracking" id="tracking"/>
<input type="submit" id="submit" name="mysubmit" value="submit"/>

    </div>
   <?php
    }
public function tracking_css_js()
{
//register style
  wp_register_style('cube-tracking-   css',plugin_dir_url(__FILE__).'css/chat.css',false);
 wp_enqueue_style('cube-tracking-css');
//register style

//register script
wp_register_script('cube-tracking-js',plugin_dir_url(__FILE__).'js/chat.js',array('jquery'),'4.8',false);

wp_localize_script('cube-tracking-js','myAjax',array(
   'ajaxurl'=>admin_url('admin-ajax.php'),   

 ));
 wp_enqueue_script('cube-tracking-js');
 //register script  
}
}

2) fetch_orders.php

<?php
 include '../../../wp-load.php';
 include '../../../wp-blog-header.php';
?>
<?php
class fetch_orders 
{

public function __construct()
{
          add_action('wp_ajax_myform_tracking',array(&$this,'myform_tracking'));
    $this->myform_tracking();
}

public function myform_tracking()
{  
    if(isset($_POST['mysubmit']))
    {
        $myname=$_POST['tracking'];
        echo json_encode(array('mytracking'=>$myname));
        exit(0);  
    }

}


  }

3) Мой Ajax-файл (chat.js)

 (function($){
 $('document').ready(function()
{
 $('form#mytrackingform').on('submit',function(e){
e.preventDefault(); 

 let myform=$('form#mytrackingform').serialize();
 $.ajax({
  type:'POST',
  url:myAjax.ajaxurl,   
  dataType:'json',
  cache:false,
  data:{action:'tracking_form'},
  success:function(data,responseText)
  {
   var testform=data.mytracking;
    $('div#message').append('<div class="operator">'+myform +'</div>'); 
    console.log(responseText);
  },
  error:function(status,responseText)
  {
    console.log(status);
    console.log(responseText);
  }



  });

Ожидается, если я поставлю "24" в поле ввода: я должен получить 24, но получаю ноль и ошибку Ошибка ответа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...