Ajax javascript php

Ajax javascript php

我要问一个经常被提及的问题,但我无法理解我的代码中缺少什么才能使其正常工作。 我有两个 PHP 文件,一个用作查看器,另一个用于处理、执行流程,还有一个 javascript 文件,我将 ajax 请求放在那里。我的目标很简单,就是在我的 Js 和我的 PHP.

之间传递一个变量

我的global.js文件

  window.onload = function(){
      
      
   
   
      for($i = 0; $i <= 0; $i++){
          console.log("after for");
          console.log($i);
   $input = document.getElementsByClassName('from_1')[$i].textContent;
   $sub = document.getElementsByClassName('subject_1')[$i].textContent;
   $recei = document.getElementsByClassName('received_1')[$i].textContent;
   $preview = document.getElementsByClassName('bodypreview_1')[$i].textContent;
   $body_1 = document.getElementsByClassName('body_1')[$i].textContent;
    console.log("*********************");
    console.log($input);
    console.log($sub);
    console.log($recei);
    console.log($preview);
    console.log($body_1);
    console.log("*********************");
    
    
}};                   

我使用 getElementsById 恢复数据并将其存储在变量中。然后在同一个文件中我进行 Ajax 调用

function btn_urgent(html){
    console.log("*************************");
    console.log("btn_urgent");
    console.log($input);
    console.log("*************************");
    $.ajax({url: '../../wp-content/plugins/game_plugin/process_general.php',
        
    type: 'POST',
    
    data: {info: 'insert_to_db', $input: $input},
    
    success: function(output) {
        console.log("*************************");
            console.log("ssrtsgsgsg");
             alert(output);
             
             
            console.log("*************************");
            return($input);
            
             
        }

在我的游戏中。 php 文件 我有一个 onclick 调用我的函数 "btn_urgent".

<button type="submit"  class="btn btn-primary col-2" onclick="btn_urgent()" >urgent</button>

调用我的 Ajax 函数后,它会调用 process_general 文件中的另一个函数 insert_to_db。

 function insert_to_db($input){
     
global $wpdb;
echo json_encode;
         $wpdb->insert(
                    'test_insert', //table name
                    array(
                'id' => 550,
                'from_mail' => $input,
                
                    ), //columns
                    array(
                '%d',
                '%s',
               
                    )
            );

     
  }

如您所见,我正在尝试在单击 onclick 时插入 $input。但它不起作用。另一方面,我的函数 insert_to_db 被我的 Ajax 请求很好地调用了,但它没有传递 $input。 我想我忘记了成功故事中的某些内容,但我不知道是什么。如果有人有一些提示解决方案可以提供给我,我就是买家。 我不知道这有多重要,但我正在进入 wordpress。 如有需要,我会随时待命,谢谢大家,祝你有美好的一天。

在您的 ajax 数据中,它的字段名称无效:

data: {info: 'insert_to_db', $input: $input},

改为:

data: {info: 'insert_to_db', input: $input},

在您的 php 上,您需要像这样获取数据:

$info = $_POST['info'];
$input= $_POST['input'];
// Then call the function
insert_to_db($input)