2016-05-25 7 views
2

私はPHPで最高のアマチュアですが、私は遅いペースで自分のやり方を変えることができます。 以下のコードでは、動的に生成されたラジオボタンの値を取得し、その詳細をデータベースに送信しようとしています。動的に名前を付けられたラジオ入力からデータベースに値を送信する

データベースが更新されているため、部分的に成功していますが、それは最後の日付です。例えば次のコードは、2016-03-01,2016-03-02,2016-03-03および2016-03-04のラジオボタンを生成します。すべてのラジオボタンで「閉じた」を選択して送信すると、データベースの最後の日付の変更のみが送信されます。

おそらくこれを行う簡単な方法があります。しかし、これを周りのグーグルが私の限られた知識と一緒に掻き集めることができたコードでした。

ご協力いただきありがとうございます。

<form action="" id="open_closed" method="post"> 
<?php 
global $wpdb; 
$startdate  = '2016-03-01'; 
$nextdate  = '2016-03-04'; 
$get_month_dates = $wpdb->get_results("SELECT * FROM wp_vgs_attendance WHERE date >= '$startdate' AND date <= '$nextdate' "); 
foreach ($get_month_dates as $month_dates) { 
$individual_date = $month_dates->date; 
echo '<input type="radio" name="' . $individual_date . '" id="' . $individual_date . '" value="0">Open</input>'; 
echo '<input type="radio" name="' . $individual_date . '" id="' . $individual_date . '" value="1">Closed</input>'; 
echo '<input type="hidden" name="date-' . $individual_date . '" id="date-' . $individual_date . '" value="' . $individual_date . '"></input> - ' . $individual_date . '<br><br>'; 
} 

?> 
<input name="open_closed" type="submit" class="button button-primary button-large" value="Submit"> 
</form> 
<?php 

if (isset($_POST['open_closed'])) { 
global $wpdb; 
foreach ($get_month_dates as $month_dates) { 
    $individual_date = $month_dates->date; 
    $name   = $individual_date; 
    $open   = $_POST[$name]; 
    $date   = $_POST['date-' . $individual_date . '']; 
} 

$wpdb->query("UPDATE wp_vgs_attendance SET closed = '$open' WHERE date = '$date'"); 

} 
+0

各グループの両方のボタンに同じIDを割り当てています。 IDは一意であると考えられます。ボタンにIDが必要なことは確かですか?彼らはたぶん名前が必要です。 – Barmar

答えて

0
<form action="" id="open_closed" method="post"> 
<?php 
global $wpdb; 
$startdate  = '2016-03-01'; 
$nextdate  = '2016-03-04'; 
$get_month_dates = $wpdb->get_results("SELECT * FROM wp_vgs_attendance WHERE date >= '$startdate' AND date <= '$nextdate' "); 
foreach ($get_month_dates as $month_dates) { 
$individual_date = $month_dates->date; 
echo '<input type="radio" name="' . $individual_date . '" id="' . $individual_date . '" value="0">Open</input>'; 
echo '<input type="radio" name="' . $individual_date . '" id="' . $individual_date . '" value="1">Closed</input>'; 
echo '<input type="hidden" name="date-' . $individual_date . '" id="date-' . $individual_date . '" value="' . $individual_date . '"></input> - ' . $individual_date . '<br><br>'; 
} 

?> 
<input name="open_closed" type="submit" class="button button-primary button-large" value="Submit"> 
</form> 
<?php 

if (isset($_POST['open_closed'])) { 
global $wpdb; 
foreach ($get_month_dates as $month_dates) { 
    $individual_date = $month_dates->date; 
    $name   = $individual_date; 
    $open   = $_POST[$name]; 
    $date   = $_POST['date-' . $individual_date . '']; 

    $wpdb->query("UPDATE wp_vgs_attendance SET closed = '$open' WHERE date = '$date'"); 
} 

} 

ただ、foreachループ内でUPDATEクエリを置きます。

関連する問題