【发布时间】:2021-02-16 18:00:27
【问题描述】:
我正在使用 ajax 将复选框保存到我的数据库中,而无需重新加载页面。因此,当进行 ajax 调用时,我需要知道复选框的值(无论是勾选还是未勾选)。我已经尝试了 SO 中的以下代码行来获取复选框值,但它们似乎都不适合我:
tb_checkbox_id = jQuery('#tb-checkbox-id').val(); //always returns on
// tb_checkbox_id = jQuery('#tb-checkbox-id').prop('checked'); always returns false
// tb_checkbox_id = jQuery('#tb-checkbox-id').is(':checked'); always returns false
选择了正确的 id,因为我可以更改 html 中的值,并使用上面的代码更改输出(例如,设置为 false 然后将输出 false)。
这是我的其余代码。页面上还有另一个复选框,但具有不同的 ID。
为什么勾选或不勾选总是返回相同的值?我想不通。
function tb_checkbox ($db_table_name, $db_userid_column_name, $db_checkbox_column_name, $where_user_id, $checkbox_default)
{
/*------Echo checkbox form------*/
echo '<form action="" method="post" id="checkbox_form">';
echo '<input type="checkbox" class="tb-checkbox" id="tb-checkbox-id" name="tb_checkbox_practitioner_pages"';
if ($checkbox_db_value == 1) //Display the checkbox as "checked" or not by reading checkbox_db_value which is the value from database. Is set to default value if no database value exists.
{
echo ' checked';
}
echo '> <input type="submit"> </form>';
echo "<p>Value at POST is: ";
echo $_POST['tb_checkbox_practitioner_pages'];
$user_id = bbp_get_current_user_id();
?>
<script>
// tb_checkbox_id = jQuery('#tb-checkbox-id').val();
// tb_checkbox_id = jQuery('#tb-checkbox-id').prop('checked');
tb_checkbox_id = jQuery('#tb-checkbox-id').is(':checked');
js_user_id = '<?php echo $user_id;?>';
jQuery('#checkbox_form').on('submit', function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "/wp-content/themes/buddyboss-theme-child/tb-checkbox-js-called.php",
data: {userid: js_user_id},
success: function() {
alert("Success checkbox = " + tb_checkbox_id) //('Post is' + $_POST['tb_checkbox_practitioner_pages']);
}
});
});
</script>
<?php
}
【问题讨论】:
标签: javascript php ajax checkbox