У меня есть php isset if заявление и javascript для отправки, который просто не хочет правильно отправлять. Я пытался:
document.getElementByID("form1").submit();
document.form1.submit();
document.forms[form1].submit();
и попробовал все эти варианты с и без объявления переменной, используя this.value.
В приведенном ниже коде есть javascript, и он «кажется» отправляется (страница обновляется, а опция «select» по умолчанию возвращается к опции 0, но кажется, что данные формы не были отправлены, и массив неправильно отсортирован Я очень новичок в php и js (только что начал на этой неделе), поэтому заранее прошу прощения 🙂
Документ также имеет <html>
а также <head>
тег и obstart()
и sessionstart()
пометьте, если это поможет.
<script>
function submitform()
{
document.getElementByID("form1").submit();
}
</script>
# array_multisort
$sort = array();
foreach($columbs as $k=>$v)
{
$sort['2'][$k] = $v['2'];
$sort['1'][$k] = $v['1'];
$sort['4'][$k] = $v['4'];
$sort['3'][$k] = $v['3'];
$sort['5'][$k] = $v['5'];
$sort['6'][$k] = $v['6'];
$sort['7'][$k] = $v['7'];
$sort['8'][$k] = $v['8'];
}
# sort by event_type desc and then title asc
if(isset($_POST['formSubmit']))
{
$sortbysubmit = $_POST['myselect'];
switch($sortbysubmit)
{
case "0": $sortby0 = array_multisort($sort['0'], SORT_ASC, $columbs); break;
case "B1": $sortby1 = array_multisort($sort['1'], SORT_ASC, $columbs); break;
case "B2": $sortby2 = array_multisort($sort['2'], SORT_ASC, $columbs); break;
default: $sortby0 = array_multisort($sort['0'], SORT_ASC, $columbs); break;
echo 'hello';
break;
}
}
else
{
array_multisort($sort['0'], SORT_ASC, $columbs);
}
?>
<!--form1-->
<form method="post" action="" id="form1" name="form1">
<label for="form1">1</label><br>
<select name="myselect" 2="myselect" onchange="submitform()">
<option value="0">0</option>
<option value="B1">1</option>
<option value="B2">2</option>
</select>
<noscript>
<input type="submit" value="Click me" />
</noscript>
</form>
Вы проверяете ключ formSubmit в своем сообщении, но никогда его не отправляете. Попробуй это:
<form method="post" action="" id="form1" name="form1">
<label for="form1">1</label><br>
<select name="myselect" 2="myselect" onchange="submitform()">
<option value="0">0</option>
<option value="B1">1</option>
<option value="B2">2</option>
</select>
<noscript>
<input type="submit" name="formSubmit" value="Click me" />
</noscript>
</form>
Попробуйте использовать:
if(!empty($_POST)):
//your submission process code goes here
endif;
У вас нет атрибута имени для кнопки отправки, и поэтому $ _POST [‘formSubmit’] не установлено.
Я обнаружил, что просто добавив
if(empty($_POST)):
$sortbysubmit = $_POST['mySelect'];
switch($sortbysubmit)
{
case "SELECT": $sortbyID = array_multisort($sort['ID'], SORT_ASC, $columbs); break;
}
endif;
а также включая Викрама
if(!empty($_POST)):
//your submission process code goes here
endif;
похоже на работу. Теперь он успешно публикует переменную 0 вместе с 1 и 2. Спасибо людям 🙂