2016-06-10 66 views
0

當用戶提交表單時,我正努力在動態字段中使用自動增量ID。如何爲每個提交條目更新自定義表? &我們應該如何從自定義表中獲取ID?以聯繫表格形式獲取自動增量ID 7

創建表有自動遞增:

function create_db() { 
    global $wpdb; 

    $charset_collate = $wpdb->get_charset_collate(); 
    $table_name = $wpdb->prefix . "id_count"; 
    if($wpdb->get_var("show tables like '$table_name'") != $table_name) { 
     $sql = "CREATE TABLE $table_name (
       `id` mediumint(9) NOT NULL AUTO_INCREMENT, 
       `name` mediumtext NOT NULL, 
       UNIQUE KEY id (id) 
     )$charset_collate;"; 

     require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
     dbDelta($sql); 
    } 

} 
add_action("init", "create_db"); 

當表單提交:

function your_wpcf7_posted_data($posted_data) { 
    global $wpdb; 
    $name = $posted_data['your-name']; 

    $table_name = $wpdb->prefix . "id_count"; 
    $posted_data['cf7-counter'] = $wpdb->insert_id; 
); 
+0

作爲一般規則:不要使用您的表單中的ID,它將在您插入dat時自動創建一個在數據庫中。 –

+0

有沒有我可以看的資源?目前我的表單向cfdb插件發送,不包含自動增量列http://cfdbplugin.com/ – mark5

+0

是的,我注意到了這一點。但是你可能仍然會得到一個有效的自動增量值?問題是:爲什麼你想在你的表單中的自動增量值?更新? –

回答

0

看來你的SQL代碼不能正常工作,所以你可以試試下面的代碼:

$sql = "CREATE TABLE IF NOT EXISTS $table_name (
      `id` int(9) NOT NULL, 
      `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 

)ENGINE = MyISAM AUTO_INCREMENT = 262 DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci「;

0

嗨如果你正在尋找動態數字生成聯繫表格7這個WordPress指南將幫助你。

步驟:

主題function.php添加以下代碼

function wpcf7_generate_rand_number($wpcf7_data) { 
$properties = $wpcf7_data->get_properties(); 
$shortcode = '[rand-generator]'; 
$mail = $properties['mail']['body']; 
$mail_2 = $properties['mail_2']['body']; 
if(preg_match("/{$shortcode}/", $mail) || preg_match("/[{$shortcode}]/", $mail_2)) { 
$option = 'wpcf7sg_' . $wpcf7_data->id(); 
$sequence_number = (int)get_option($option) + 1; 
update_option($option, $sequence_number);</code> 
$properties['mail']['body'] = str_replace($shortcode, $sequence_number, $mail); 
$properties['mail_2']['body'] = str_replace($shortcode, $sequence_number, $mail_2); 
$wpcf7_data->set_properties($properties); 
} 
} 
add_action('wpcf7_before_send_mail', 'wpcf7_generate_rand_number'); 

然後使用領域[rand-generator]

來源: https://www.banna360.com/contact-from7-dynamic-number-generation/