0

チェックボックスがクリックされたときに、データベース内の 1 つの値を 0 から 1 に更新しようとしています。私はこのテーマについて多くの例を見てきましたが、何が間違っているのか理解できません。私はこれにかなり慣れていないので、助けていただければ幸いです。

形:

            <form method='post'>
                <table>                             
                    <thead>                           
                    <th><div style="border-bottom: 1px solid #FFF; width:746px;"><div class="headline1">Registrations under preparation</div></div></th>
                    </thead>
                </table>
                <table class="width_70">   
                    <thead>                           
                    <th class="headline1">Student</th>
                    <th class="headline1">Company</th>
                    <th class="headline1">Date</th>
                    <th class="headline1">P</th>
                    <th class="headline1">V</th>
                    <th class="headline1">K</th>
                    </thead>
                   <?foreach($data_array_praktikant_info as $value){if(($value[1]->studentApproved == 1) xor ($value[1]->companyApproved == 1)) {
                    ?><tr><?                         
                    ?><td><? echo $value[0]->f_name . ' ' . $value[0]->l_name;?></td>
                        <td>Dania</td>
                        <td><? echo $value[1]->approvedDate; ?></td>
                        <td><div class="approve"><input disabled  <? if($value[1]->studentApproved == 1){?>checked<?} ?> id="7" type="checkbox"><label for="7"><span></span></label></div></td>
                        <td><div class="approve"><input disabled  <? if($value[1]->companyApproved == 1){?>checked<?} ?>  id="8" type="checkbox"><label for="8"><span></span></label></div></td>
                        <td><div class="approve"><input class="approveME" value="<? $value->application_id ?>" onclick="checkCheckboxState();" <? if($value[1]->koordinatorApproved == 1){?>checked<?} }}?> id="9" type="checkbox"><label for="9"><span></span></label></div></td>
                    </tr>
                </table>
            </form>

AJAX:

function checkCheckboxState() {

    if ($('.approveME').is(':checked')) {
        var application_id = $('.approveME').first().attr( "value" );

        //tried this aswell// 

        var application_id = $('.approveME').val();

        $.ajax({
            type: "POST",
            url: "approve.php",
            data: {id : application_id},
            success: function(msg) {
                alert("Data saved:" + msg);
            }
        });
    }
    ;
}

PHP: (approve.php)

 <?

 global $wpdb;

 $application_id = $_POST['application_id'];

 $date_current = Date('Y-m-d H:i:s');

 $fieldarray = array('koordinatorApproved' => 1, 'updated' => $date_current);

 $where = array('application_id' => $application_id);

 $wpdb->update('application', $fieldarray, $where);

 ?>
4

2 に答える 2

1

$_POST["application_id"]$_POST["id"]AJAX からフィールドを渡しているため、常に null になります。

PHP でこれを変更します。

$application_id = $_POST["id"];

またはあなたのJavascriptでこれ:

data: {application_id: application_id}
于 2013-10-28T15:22:18.820 に答える
1

以下の変更を使用してください。

approval.php ファイルで、
$application_id = $_POST['application_id'];を変更します。$application_id = $_POST['id']; に

checkCheckboxState関数は、以下の条件を削除して、オン/オフのようにトグルとして機能するようにします。それ以外の場合は、チェックボックスがチェックされたときにのみトリガーされます

if ($('.approveME').is(':checked')) {
}
于 2013-10-28T15:31:40.690 に答える