Я не могу понять, почему этот код не продолжает переключаться.
Что должно быть изменено?
print_r( $_POST );
$direction = isset( $_POST['direction'] ) ? $_POST['direction'] : 'DESC';
$opposite = $direction == 'DESC' ? 'ASC' : 'DESC';
echo '
<form method="POST" >
<input type="submit" value="' . $opposite . ' " name="direction">
</form>
';
Виновником является:
<input type="submit" value="' . $opposite . ' " name="direction">
^^
Обратите внимание, что у вас есть дополнительный пробел в конце значения, value="' . $opposite . ' "
Попробуйте изменить это на:
echo '
<form method="POST" >
<input type="submit" value="' . $opposite . '" name="direction">
</form>
';
Других решений пока нет …