Submit form to db

时间:2013-03-07 作者:MF1

我无法使用ajax和表单使这个插入db函数正常工作。当我执行此操作时,我会收到一个关于成功的空白警报框。

HTML

<div id="rsvpContent">  
     <form id="Attendevent" action="">
     <input id="attend" name="attend" type="checkbox" value="yes" /><label for="attent">Yes, I plan to attend.</label>
     <input type="hidden" value="<?php echo get_the_ID(); ?>" name="event_id"/>
     <input type="hidden" value="<?php echo $current_user->ID; ?>" name="user_id"/>
     </form>
</div>
PHP

 add_action(\'wp_ajax_Attending\', \'eventAttend\');
 add_action(\'wp_ajax_nopriv_Attending\', \'eventAttend\');

 function eventAttend() {
  global $wpdb;

  $fields = array();
  parse_str($_POST[\'data\'], $fields);

if($fields[\'attend\'] == \'yes\') {

   $wpdb->insert(\'wp_event_attendants\', array( \'event_id\' => $fields[\'event_id\'], \'user_id\' => $fields[\'user_id\'])); 

    echo $wpdb->print_error();
    }
    echo \'Not working.\';
   die();
}
JS(在header.php中)

    $("#attend").click(function(){
    var form = $("#Attendevent").serialize();

    $.ajax({
      url: "<?php echo admin_url(\'admin-ajax.php\'); ?>",
      beforeSend: function() {
          alert(form);
      },
      type:\'POST\',
      data:{
          action: "Attending",
          "data": form 
          },
      dataType:  \'html\',
      success: function(data) {
            alert(data);
      }
    }); 
});
调试信息

【2013年3月7日17:47:09】PHP通知:未定义索引:参加/wp内容/插件/活动日历注册/功能。php在线198

1 个回复
最合适的回答,由SO网友:vancoder 整理而成

在将表单数据发布到PHP函数之前,您正在序列化表单数据,但在另一端不会取消序列化。因此,您的支票$_POST[\'attend\'] == \'yes\'总是会失败。

尝试以下操作(未测试)。

    function eventAttend() {
    $fields = array( );
    parse_str( $_POST[\'data\'], $fields );
               if($fields[\'attend\'] == \'yes\') {

global $wpdb;

                    $wpdb->insert(\'wp_event_attendants\', array( \'event_id\' => $fields[\'event_id\'], \'user_id\' => $fields[\'user_id\'])); 

                    echo $wpdb->print_error();
                }
     die();
    }

结束

相关推荐

如何通过引用登录的用户名来调用特定文件(通过php)?

我想设置一个页面,为属于特殊创建的用户角色(“map\\u user”)的每个网站注册用户显示不同的内容。因此,例如,如果属于“map\\u user”类别的站点用户登录到该站点,则会自动将其转发到特定页面。然后,此页面引用其用户名,根据该用户名调用特定的外部内容(html),并将其包含在页面中。我已经通过插件和功能的组合解决了第一个问题(根据用户角色转发用户)。但我正在努力完成第二部分,一旦他们到达目标页面。我已经为页面创建了一个模板,并在其中包含了以下php:<?php if ( is_arra