使用从数据库中检索的复选框值更新数据

时间:2018-06-02 15:17:51

标签: php jquery ajax

我想更新有关复选框状态或值的数据库表。 我在下面从数据库中检索复选框状态。

当用户访问此页面时,会看到复选框的当前状态。

HTML

application.config(['$routeProvider','$httpProvider', '$locationProvider', function($routeProvider,$httpProvider, $locationProvider) {

  $httpProvider.interceptors.push('AuthInterceptors');

}]);

我想在用户更改复选框状态时更新表而不刷新,所以我使用Ajax来POST数据;

<form name="financial_checks" method="post" action="cbchange.php" />
   <input name="provision" type="checkbox" <?php if ($podata_provision == '1') echo "checked='checked'"; ?>/>
   <input name="invoice" type="checkbox" <?php if ($podata_invoice == '1') echo "checked='checked'"; ?>/>
   <input name="payment" type="checkbox" <?php if ($podata_payment == '1') echo "checked='checked'"; ?>/>
   <button type="submit" name="updatebtn" id="btn" class="btn btn-info">Update</button>
</form>

(sendtoken是在HTML页面中检索的变量,也是我无法发布的)

cbchange.php

    $.ajax( {
        type: 'POST',
        url: 'cbchange.php',
        data: { provision:provision, invoice:invoice, payment:payment, sendtoken:sendtoken2},


    } );

当我var_dump($ _ POST)结果与复选框选中或取消选中状态相关时。

$provision = $_POST['provision'];
$invoice = $_POST['invoice'];
$payment = $_POST['payment'];
$sendtoken = $_POST['sendtoken2'];


$query = " UPDATE podata SET provision = '".$provision."', invoice = '".$invoice."',payment = '".$payment."' WHERE token2 = '".$sendtoken."'";
$result = mysqli_query($connect, $query);

当用户更改复选框状态时,如何将数据发布为1或0?

1 个答案:

答案 0 :(得分:0)

您可以设置输入的值属性。

<input name="provision" type="checkbox" value="1" <?php if ($podata_provision == '1') echo "checked='checked'"; ?>/>

因为只有在选中它时才能获取值,但是如果您希望它们为1或0,则停止发布复选框值并使用hidden字段来保持状态并通过Jquery操作它们复选框状态变化事件。

看看这对你有帮助。