2016-01-27 16 views
1

我是新來的ajax,但我真的很想學習。我已經建立了一個通過ajax提交的表單(強大的專業版)。在提交按鈕,我對的onclick功能:如何從PHP返回數據到jQuery AJAX

<div class="frm_submit"> <input id="btn-max-hyp" onclick="add_customer()" type="submit" value="[button_label]" [button_action] /> <img class="frm_ajax_loading" src="[frmurl]/images/ajax_loader.gif" alt="Sending"/> </div>

我自定義的js文件:

jQuery(document).ready(function($){ 
 
$('#form_maxhyp').on("submit", add_customer); 
 

 
function add_customer() { 
 
var form_maxhyp = $(this).serialize(); 
 

 
$.ajax({ 
 
type:"POST", 
 
url: frontendajax.ajaxurl, 
 
data: form_maxhyp, 
 

 
success: function(data) 
 
{ 
 
\t $("#test").html(data); 
 
} 
 
}); 
 

 
return false; 
 

 
} 
 
});

和最後的代碼在我function.php

<?php 
 
add_action('wp_enqueue_scripts', 'add_frontend_ajax_javascript_file'); 
 
function add_frontend_ajax_javascript_file() 
 
{ 
 
\t wp_enqueue_script('ajax_custom_script', get_stylesheet_directory_uri() . '/ajax-javascript.js', array('jquery')); 
 
\t wp_localize_script('ajax_custom_script', 'frontendajax', array('ajaxurl' => admin_url('admin-ajax.php'))); 
 
} 
 

 
add_action('wp_ajax_add_customer', 'add_customer'); 
 
add_action('wp_ajax_nopriv_add_customer', 'add_customer'); 
 
function add_customer($entry_id, $form_id) 
 
{ 
 
\t if ($form_id == 6) 
 
\t { 
 
\t \t global $wpdb, $frmdb; 
 
\t \t $form1 = '6'; 
 
     $value = $_POST['item_meta'][222]; 
 

 
/* a lot of if and else statements */ 
 

 
/* Echo values */ 
 
\t \t echo "'".$value. "'"; 
 
\t } 
 
\t 
 
\t die(); 
 
}

我想將值設置爲我的div。 在控制檯日誌中,我收到一個錯誤:ReferenceError:add_customer未定義。

也許這是一件非常簡單的事,我只是沒有看到。我在這裏做錯了什麼?

+0

刪除'onclick =「add_customer()」',你不需要那個。在PHP方面,你的回調函數沒有收到任何參數,從獲取/發佈變量中獲取它們。 – vidja

+0

刪除這個技巧。謝謝!! – Annemieke

回答

0

在自定義的js文件你有這樣的:

jQuery(document).ready(function($){ $('#form_maxhyp').on("submit", add_customer);

在這種情況下add_customer被讀作一個變量。

它改成這樣: jQuery(document).ready(function($){ $('#form_maxhyp').on("submit", add_customer());

撥打電話給你的功能!