我使用了以下代码
order.php
<script type="text/javascript">
function processForm() {
$.ajax( {
type: 'POST',
url: 'ajax.php',
data: { checked_box : $('input:checkbox:checked').val()},
success: function(data) {
$('#results').html(data);
}
} );
}
</script>
<input type="checkbox" name="checked_box" value="1" onclick="processForm()">
和ajax.php
<?php
include "config.php";
$checkbox = intval($_POST['checked_box']);
echo $checkbox;
if($checkbox == 1){
$Query="SELECT * FROM `order` ORDER BY sl_no DESC";
}else{
$Query="SELECT * FROM `order` ORDER BY sl_no ASC";
}
$result=mysql_query($Query);
echo $Query;
while($row = mysql_fetch_object($result)) {
?>
效果很好但是当我取消选中时会显示错误
注意:未定义的索引:第24行的C:\ xampp \ htdocs \ website \ admin \ ajax.php中的checked_box
如何避免此错误???
答案 0 :(得分:0)
这不是错误,而是通知。如果您尝试访问非初始化变量,您将收到此类通知。只需使用适当的起始值初始化它。
代码中棘手的部分是您假设您将获得复选框的值,因为它包含在表单中。但是,除非他们已经检查过,否则不会发送复选框。
答案 1 :(得分:0)
而不是intval($_POST['checked_box']);
使用isset($_POST['checked_box']);
来确保该值存在。
之后,如果您仍然需要该值,则可以使用intval
。
答案 2 :(得分:0)
我有一个选择下拉框
<select name="status" id="status" onchange="changeStatus()">
<option value="step_1">step_1</option>
<option value="step_2">step_2</option>
<option value="step_3">step_3</option>
<option value="step_4">step_4</option>
</select>
我的javascript
<script>
function changeStatus() {
$('select.changeStatus').change(function(){
$.ajax({
type: 'POST',
url: 'update_status.php',
data: {changeStatus: $('select.changeStatus').val()},
dataType: 'html'
});
});
});
</script>
所以我想从select下拉框中选择的值发送到php文件(update_status.php)
答案 3 :(得分:-1)
这一切都是因为POST请求中只包含选中的复选框。因此,您需要检查是否存在checked_box
密钥,以确定是否设置了复选框:
if(isset($_POST['checked_box']) {
.. set
} else {
.. not set
}