2017-10-10 6 views
-2

フォームで作業しています。私はフォームの情報をデータベースに追加したいので、ウェブサイトの他の場所のカレンダーにその情報を表示することができます。データベースに複数のレコードを追加するには

私は他のコードをオンラインで見つけましたが、それは1つの値でしか動作しません。何らかの理由で1回だけです。 は今、あなたは唯一のプロセス/(あなたのコードを形成する)の名前を挿入し、この(ところでワードプレスでの作業)

function elh_insert_into_db() { 

global $wpdb; 
// creates my_table in database if not exists 
$table = $wpdb->prefix . "table_form"; 
$charset_collate = $wpdb->get_charset_collate(); 
$sql = "CREATE TABLE IF NOT EXISTS $table (
    `id` mediumint(9) NOT NULL AUTO_INCREMENT, 
    `name` text NOT NULL, 
    `email` text NOT NULL, 
    `date` text NOT NULL, 
    `starttijd` text NOT NULL, 
    `eindtijd` text NOT NULL, 
    `opmerkingen` text NOT NULL, 
UNIQUE (`id`) 
) $charset_collate;"; 
require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
dbDelta($sql); 
// starts output buffering 
ob_start(); 
?> 
<form action="#v_form" method="post" id="v_form"> 
    <label for="visitor_name"><h3>Naam:</h3></label> 
     <input type="text" name="visitor_name" id="visitor_name" /> 

<label for="visitor_email"><h3>E-mail:</h3></label> 
    <input type="email" name="visitor_email" id="visitor_email" /> 

<label for="visitor_date"><h3>Datum:</h3></label> 
    <input type="date" name="visitor_date" id="visitor_date" /> 

<label for="visitor_start_time"><h3>Starttijd:</h3></label> 
    <input type="time" name="visitor_start_time" id="visitor_start_time" /> 

<label for="visitor_end_time"><h3>Eindtijd:</h3></label> 
    <input type="time" name="visitor_end_time" id="visitor_end_time" /> 

    <label for="visitor_text"><h3>Opmerkingen:</h3></label> 
     <input type="text" name="visitor_text" id="visitor_text" /> 

    <input type="submit" name="submit_form" value="Aanvragen" /> 
</form> 
<?php 
$html = ob_get_clean(); 
// does the inserting, in case the form is filled and submitted 
if (isset($_POST["submit_form"]) && $_POST["visitor_name"] != "") { 
$table = $wpdb->prefix."table_form"; 
$name = strip_tags($_POST["visitor_name"], ""); 
$wpdb->insert( 
    $table, 
    array( 
     'name' => $name 
    ) 
); 


    $html = "<p>check this is inserted in the database <strong>$name, $email, $date , $starttijd, 
$eindtijd, $opmerkingen</strong> what a succes!</p>"; 
} 
// if the form is submitted but the name is empty 
if (isset($_POST["submit_form"]) && $_POST["visitor_name"] == "") 
    $html .= "<p>You need to fill the required fields.</p>"; 
// outputs everything 
return $html; 

} 
// adds a shortcode you can use: [insert-into-db] 
add_shortcode('elh-db-insert', 'elh_insert_into_db'); 
+0

これが働いているか、それが動作していないのですか? – tadman

+0

今は動作していません –

+0

何が問題なのですか?それは何をすべきか、実際に何をしているのですか? – tadman

答えて

0

を持っている:

$name = strip_tags($_POST["visitor_name"], "");  
$wpdb->insert( 
    $table, 
    array( 
     'name' => $name 
    ) 
) 

その他の情報を追加するためのコードのこの部分を変更します。 $ _POSTの各アイテムを処理する必要があります。

良い出発点フォーム上(および他の多くのもの!):https://www.w3schools.com/php/php_forms.asp

0
function elh_insert_into_db() { 
    global $wpdb; 
    // creates nizam_table in database if not exists 
    $table = $wpdb->prefix . "nizam_table"; 
    $charset_collate = $wpdb->get_charset_collate(); 
    $sql = "CREATE TABLE IF NOT EXISTS $table (
     `id` mediumint(9) NOT NULL AUTO_INCREMENT, 
     `name` text NOT NULL, 
     `email` text NOT NULL, 
    UNIQUE (`id`) 
    ) $charset_collate;"; 
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
    dbDelta($sql); 
    // starts output buffering 
    ob_start(); 
    ?> 
    <form action="#v_form" method="post" id="v_form"> 
     <label for="visitor_name"><h3>Hello there! What is your name?</h3></label> 
     <input type="text" name="visitor_name" id="visitor_name" /> 
     <input type="text" name="visitor_email" id="visitor_email" /> 
     <input type="submit" name="submit_form" value="submit" /> 
    </form> 
    <?php 
    $html = ob_get_clean(); 
    // does the inserting, in case the form is filled and submitted 
    if (isset($_POST["submit_form"]) && $_POST["visitor_name"] && $_POST["visitor_email"] != "") { 
     $table = $wpdb->prefix."nizam_table"; 
     $name = strip_tags($_POST["visitor_name"], ""); 
     $email = strip_tags($_POST["visitor_email"], ""); 
     $wpdb->insert( 
      $table, 
      array( 
       'name' => $name, 
       'email' => $email 
      ) 
     ); 
     $html = "<p>Your name <strong>$name</strong> was successfully recorded. Thanks!!</p>"; 
    } 
    // if the form is submitted but the name is empty 
    if (isset($_POST["submit_form"]) && $_POST["visitor_name"] == "") 
     $html .= "<p>You need to fill the required fields.</p>"; 
    // outputs everything 
    return $html;  
} 
// adds a shortcode you can use: [insert-into-db] 
add_shortcode('elh-db-insert', 'elh_insert_into_db'); 
+0

このコードを試してみてください... –

関連する問題