формы — проверка флажка PHP перед отправкой

У меня есть один последний кусок перед завершением этой формы, но я думаю, что функции в шаблоне, на котором я его основываю, делают вещи немного сложнее. По сути, я хочу, чтобы перед тем, как кнопка «Отправить» выполнила свою команду, потребовалось установить флажок «согласиться».

$tbl->addRow();

$tbl->addCell( $frm->addInput('checkbox', 'checkbox', 'check'),
'submit', 'data', array('colspan'=>4) );

$tbl->addRow();

$tbl->addCell( $frm->addInput('submit', 'submit', 'Submit'),
'submit', 'data', array('colspan'=>4, 'onclick'=>'if(!this.form.checkbox.checked)return false};',) );

$frmStr = $frm->startForm('result.php', 'post', '', array('onsubmit'=>'return checkSubmit(this);') ) .
$tbl->display() . $frm->endForm();return $frmStr;
}

Вот мой PHP для отправки / флажок. Ниже приведены функции, вызываемые для создания строк / ячеек / входов. Используя этот формат, я не могу просто вставить теги и думаю, что это сдерживает меня.

 function addCell($data = '', $klass = '', $type = 'data', $attr_ar = array() ) {
$cell = array(
'data' => $data,
'klass' => $klass,
'type' => $type,
'atts' => $attr_ar
);

if ( empty($this->cur_section['rows']) ) {
try {
throw new Exception('You need to addRow before you can addCell');
} catch(Exception $ex) {
$msg = $ex->getMessage();
echo "<p>Error: $msg</p>";
}
}

// add to current section's current row's list of cells
$count = count( $this->cur_section['rows'] );
$curRow = &$this->cur_section['rows'][$count-1];
$curRow['cells'][] = &$cell;
}

function addInput($type, $name, $value, $attr_ar = array() ) {
$str = "<input type=\"$type\" name=\"$name\" value=\"$value\"";
if ($attr_ar) {
$str .= $this->addAttributes( $attr_ar );
}
$str .= $this->xhtml? ' />': '>';
return $str;
}

Рад поделиться больше кода, если это поможет. Может кто-нибудь помочь мне с правильным форматированием кода, чтобы соответствовать внутри аргумента «массив» внутри функции addInput?

1

Решение

Вам нужно добавить required приписать флажок.

$tbl->addCell($frm->addInput('checkbox', 'checkbox', 'check', array('required' => 'required')),
'submit', 'data', array('colspan'=>4) );
1

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

замещать

$tbl->addCell( $frm->addInput('checkbox', 'checkbox', 'check'),
'submit', 'data', array('colspan'=>4) );

от

$tbl->addCell( $frm->addInput('checkbox', 'checkbox', 'check'),
'submit', 'data', array('colspan'=>4, 'required' => 'required'));

Но это легко обойти, я предлагаю вам добавить сценарий проверок после отправки формы, если это еще не так.

2

По вопросам рекламы [email protected]