javascript — Форма отправки () не отправка

У меня есть 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>

1

Решение

Вы проверяете ключ 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>
4

Другие решения

Попробуйте использовать:

if(!empty($_POST)):

//your submission process code goes here

endif;

У вас нет атрибута имени для кнопки отправки, и поэтому $ _POST [‘formSubmit’] не установлено.

1

Я обнаружил, что просто добавив

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. Спасибо людям 🙂

0