2014-05-19 55 views
0

我在使用Ajax更新記錄時遇到問題。Wordpress + Ajax更新記錄不起作用

HTML & JS

<div class="row"> 
    <form role="form" action="" type="post" id="abcdform"> 
     <div class="col-md-3"> 

      <div class="form-group"> 
       <label for="date">Date</label> 
       <input type="date" class="form-control" id="date" name="date" placeholder="mm/dd/yyy" tabindex="1" value="<?php echo $dr->date; ?>"> 
      </div> 
      <div class="form-group"> 
       <label for="chats_init_customer">Chat Initiated by Customer</label> 
       <input type="number" class="form-control" id="chats_init_customer" name="chats_init_customer" placeholder="eg:5" tabindex="2" value="<?php echo $dr->chats_init_customer; ?>"> 
      </div> 
      <div class="form-group"> 
       <label for="emails_in">Emails Incomming</label> 
       <input type="number" class="form-control" id="emails_in" name="emails_in" placeholder="eg:5" tabindex="3" value="<?php echo $dr->emails_in; ?>"> 
      </div> 
     </div> 

     <div class="col-md-3"> 
      <div class="form-group"> 
       <label for="emails_out">Emails Outgoing</label> 
       <input type="number" class="form-control" id="emails_out" name="emails_out" placeholder="eg:5" tabindex="4"> 
      </div> 
      <div class="form-group"> 
       <label for="tickets_open">Tickets at Opening</label> 
       <input type="number" class="form-control" id="tickets_open" name="tickets_open" placeholder="eg:5" tabindex="5"> 
      </div>      
      <div class="form-group"> 
       <label for="tickets_closed">Tickets Closed</label> 
       <input type="number" class="form-control" id="tickets_closed" name="tickets_closed" placeholder="eg:5" tabindex="6"> 
      </div>      
     </div> 

     <div class="col-md-3"> 
      <div class="form-group"> 
       <label for="tickets_remain">Tickets Remaining Open</label> 
       <input type="number" class="form-control" id="tickets_remain" name="tickets_remain" placeholder="eg:5" tabindex="7"> 
      </div> 
      <div class="form-group"> 
       <label for="calls_taken">Calls Taken</label> 
       <input type="number" class="form-control" id="calls_taken" name="calls_taken" placeholder="eg:5" tabindex="8"> 
      </div> 
      <div class="form-group"> 
       <label for="calls_abandon">Calls Abandon</label> 
       <input type="number" class="form-control" id="calls_abandon" name="calls_abandon" placeholder="eg:5" tabindex="9"> 
      </div> 


     </div> 

     <div class="col-md-3"> 

      <div class="form-group"> 
       <label for="calls_avg_length">Calls Average Length</label> 
       <input type="number" class="form-control" id="calls_avg_length" name="calls_avg_length" placeholder="eg:5" tabindex="10"> 
      </div> 
      <div class="form-group"> 
       <label for="chats_total">Total Chats</label> 
       <input type="number" class="form-control" id="chats_total" name="chats_total" placeholder="eg:5" tabindex="11"> 
      </div> 
      <div class="form-group"> 
       <label for="sales">Sales</label> 
       <input type="number" class="form-control" id="sales" name="sales" placeholder="eg:5" tabindex="12"> 
      </div> 

      <div class="feedback hidden-md hidden-lg"></div>      

      <input type="hidden" name="action" value="edit_daily_report"> 
      <input type="submit" value="Update" id="abcdsubmit" class="btn btn-primary pull-right" tabindex="13"> 
      <div id="process" class="loader pull-right"><img src="<?php echo abcd_root_url('css/images/loader.gif');?>" alt="loader" /></div> 

     </div> 

    </form> 

</div> 



<script type="text/javascript"> 
    jQuery('#abcdform').submit(ajaxSubmit); 

    function ajaxSubmit() { 

     var abcdform = jQuery(this).serialize(); 

     jQuery('#abcdsubmit').attr('disabled', true); 
     jQuery('#process').show(); 
     jQuery.ajax({ 
      type: "POST", 
      url: "<?php echo site_url(); ?>/wp-admin/admin-ajax.php", 
      data: abcdform, 
      success: function(data) { 
       jQuery(".feedback").html('<span class="glyphicon glyphicon-saved"></span> ' + data).addClass('alert alert-success'); 
       jQuery('#process').hide(); 
       jQuery('#abcdsubmit').attr('disabled', false); 
      } 

     }); 

     return false; 
    } 
</script> 

功能

function edit_daily_report() 
{ 
    global $wpdb; 
    $date = $_POST['date']; 

    $conditionValue = array('id' => 19); 

    if ($wpdb->update('hf_abcd_daily_report', array('date' => $date), array('id' => 19)) === FALSE){ 

     echo "Error"; 
    } else { 
     echo "Record successfully added to the database. Record id is <strong>$wpdb->insert_id</strong>"; 
    } 
    die(); 
} 

當我打Update按鈕,它什麼都不做表單提交後。請忽略表格中的所有字段,並只考慮日期字段。

+0

你期望它做的工作呢?你看到你的JavaScript調試器中的任何錯誤? –

+0

奇怪的是,在控制檯和頁面上的任何地方都沒有錯誤。 :(它應該更新表單提交記錄(更新) –

+0

如果'alert(')'data'變量中的響應,它說什麼? –

回答

1

你應該有阿賈克斯行動與WordPress

add_action('wp_ajax_my_action', 'edit_daily_report'); 
add_action('wp_ajax_nopriv_my_action', 'edit_daily_report'); 
+0

啊!這麼愚蠢的錯誤..:PI有爲add_record添加了行動並忘記了這一點。非常感謝Bhavesh .. :) –