javascript - 将语句插入自定义 WordPress 数据库

标签 javascript php mysql ajax wordpress

我有一个自定义数据库,我想从 WordPress 前端界面将项目插入其中。当我提交表单时,我可以很好地获取 JSON 值,但由于某种原因,它似乎没有插入到数据库中。我没有收到任何错误消息。

这就是我正在做的事情(请注意,我正在测试 name 变量,因此它不从输入字段中提取):

我正在使用 SHOW TABLE STATUS 中的 auto_increment_id 值来创建 commmittee_id 值,并且希望将其插入为主键。

JavaScript

$(".addButton").click(function() {
    var commitAddID = $(this).attr('id');
    var name = "1name";
    var date_created = $("#addCommCreated_input_"+commitAddID).val();
    var status = $("#addCommStatus_input_"+commitAddID).val();
    var disbanded = $("#addCommDisbanded_input_"+commitAddID).val();

    var dataString = {
     'action': 'addCommittee',
     'committee_id': commitAddID,
     'old_id': commitAddID,
     'name': name,
     'description': '',
     'date_created': date_created,
     'status': status,
     'disbanded': disbanded
    };

    jQuery.ajax({
      url: addCommittee.ajaxurl,
      type: "POST",
      data: dataString,
      dataType: "json",
      success: function (response) {
        $("#name_"+commitAddID).html(name);
        $("#created_"+commitAddID).html(date_created);
        $("#status_"+commitAddID).html(status);
        $("#disbanded_"+commitAddID).html(disbanded);
      }
    });

functions.php

  // set up AJAX call for addCommittee
add_action('wp_ajax_addCommittee', 'addCommittee');
add_action('wp_ajax_nopriv_addCommittee', 'addCommittee');

function addCommittee() {
  global $wpdb;

  $committee_id = esc_sql($_POST['committee_id']);
  $old_id = esc_sql($_POST['old_id']);
  $name = esc_sql($_POST['name']);
  $created = esc_sql($_POST['date_created']);
  $status = esc_sql($_POST['status']);
  $disbanded = esc_sql($_POST['disbanded']);
  $desc= esc_sql($_POST['description']);


  $wpdb->insert('wp_bubu_committees',
              array(
              'old_id' => '',
              'name' => $name,
              'description' => '',
              'date_created' => $created,
              'status' => $status,
              'disbanded' => $disbanded
              )
            );
            exit();
  }

我还在 functions.php 中本地化了 AJAX URL。有什么想法吗?

编辑:更新了代码——操作被设置为 .我现在可以插入数据库,但它只允许我插入一项。尝试插入其他项目不会返回任何内容,但数据会发布到 JSON。

最佳答案

删除数据类型 json。

    jQuery.ajax({ 
        url: addCommittee.ajaxurl, 
        type: "POST", 
        data: dataString, 
        success: function (response) { 
            $("#name_"+commitAddID).html(name); 
            $("#created_"+commitAddID).html(date_created); 
            $("#status_"+commitAddID).html(status); 
            $("#disbanded_"+commitAddID).html(disbanded); 
            alert(response); 
        } 
    }); 

关于javascript - 将语句插入自定义 WordPress 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40879940/

相关文章:

php - 使用具有外键的内连接删除

MySQL关于重复键删除

MySQL - 为什么索引列上的 select 语句返回索引信息,而不是列数据?

javascript - DevEd 教程中的滚动功能不起作用

javascript - 加载多个谷歌地图实例

javascript - 如何在 touchend 事件中获取 touchstart 值?

javascript - 使用多于 1 个参数的 NotesDatabase 搜索

php - 自动包含缺少的功能?

php - 如何在 laravel 5 的 View 中调用 Controller 函数

php - 如何处理带有要保存的php mysql中的输入文本的选择表单