Ajax POST调用PHP

时间:2019-03-20 14:49:18

标签: php jquery ajax wordpress

我正在尝试通过AJAX POST调用将字符串从JS文件发送到PHP文件,然后将该字符串插入到Wordpress数据库中。

我能够发送字符串,但是我收到以下错误消息:

  

注意:未定义索引:第81行中C:\ Bitnami \ wordpress-5.0.3-2 \ apps \ wordpress \ htdocs \ wp-content \ plugins \ Kalkator \ templates \ create.php中的数据

第81行是:$ data = $ _POST ['data'];

JS文件

$(document).ready(function() {
  var testingString = "hello people";
  $.ajax({
    url: "admin.php?page=jvformbuilder_create",
    method: "POST",
    data: { 'data': testingString }, 
    success: function(result) {
      console.log("result: " + result);
    },
    error: function(error) {
      console.log("error: " + error);
    }
  });
});

PHP文件

$data = $_POST['data'];   
echo $data; 
insertToDB($data);    

function insertToDB($data)
{
  $db = new mysqli('localhost', 'root', 'password', 'bitnami_wordpress');

  if ($db->connect_errno > 0)
  { 
    die('Unable to connect to database [' . $db->connect_error . ']');
  }

  // Attempt insert query to database.
  $testing = "INSERT INTO wp_test (value) VALUES ('$data')";

  mysqli_close($db);
} 

这是文件结构

Here is the file structure

我目前正在我的happypath上工作,因此为什么我不验证对数据库的输入。

欢迎所有帮助和提示,在此先感谢:D

编辑:我设法解决了这个问题,就像很多人建议将数据重定向到admin.php中一样。所以我只是将我的php函数移到了那里,现在它可以工作了(至少对我的happypath有用)。非常感谢所有抽出宝贵时间来帮助:D

的人

1 个答案:

答案 0 :(得分:1)

您需要将$data传递给insertToDB()函数。您目前以这种方式引用它:

$data = $_POST['data'];   
echo $data; 
insertToDB ();

您需要执行以下操作:

$data = $_POST['data'];   
echo $data; 
insertToDB ($data);