0

当单击复选框时,我正在尝试将数据库中的一个值从 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>

阿贾克斯:

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 传递该字段。

在你的 PHP 中改变这个:

$application_id = $_POST["id"];

或者在你的 Javascript 中:

data: {application_id: application_id}
于 2013-10-28T15:22:18.820 回答
1

请使用以下更改,

在approve.php 文件中,更改
$application_id = $_POST['application_id']; 进入 $application_id = $_POST['id'];

checkCheckboxState 函数删除下面提到的条件,以便它像开/关一样切换,否则仅在选中复选框时触发

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