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, но получаю ноль и ошибку Ошибка ответа