Я использовал следующий код
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)) {
?>
Это работает хорошо, но когда я снял флажок, то отображается ошибка
Примечание: неопределенный индекс: флажок_ в папке C: \ xampp \ htdocs \ website \ admin \ ajax.php в строке 24
Как избежать этой ошибки ???
Это не ошибка, а уведомление. Вы получите такие уведомления, если попытаетесь получить доступ к неинициализированным переменным. Просто инициализируйте его соответствующим начальным значением.
Сложность в вашем коде заключается в том, что вы предполагаете, что получите значение флажка, поскольку оно включено в форму. Но бывает, что флажки не отправляются, ЕСЛИ ОНИ НЕ БЫЛИ ПРОВЕРЕНЫ.
Вместо intval($_POST['checked_box']);
использование isset($_POST['checked_box']);
чтобы убедиться, что значение существует вообще.
После этого вы можете использовать intval
если вам все еще нужно это значение.
У меня есть выпадающий список
<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>
Поэтому я хочу, чтобы значение, выбранное в выпадающем списке выбора, отправлялось в файл php (update_status.php)
Это все потому, что только проверенные флажки включены в запрос POST. Так что вам нужно проверить, если ваш checked_box
ключ существует, чтобы выяснить, установлен флажок или нет:
if(isset($_POST['checked_box']) {
.. set
} else {
.. not set
}