фильтр var — Использование FILTER_SANITIZE_STRING для данных динамической формы в переполнении стека

Я использую библиотеку jquery для добавления динамических элементов формы для отправки данных (для вставки в базу данных MYSQL).
Часть JavaScript, как показано ниже:

<div>
<form method="get" action="testb1.php">
<div id="itemRows">

Item quantity: <input type="text" name="qty[]" size="4" /> Item name: <input type="text" name="name[]" /> <input onclick="addRow(this.form);" type="button" value="Add row" />

</div>
<input type="submit" />
</form>

</div>
<script>

var rowNum = 0;
function addRow(frm) {
rowNum ++;
var row = '<p id="rowNum'+rowNum+'">Item quantity: <input type="text" name="qty[]" size="4" > Item name: <input type="text" name="name[]"> <input type="button" value="Remove" onclick="removeRow('+rowNum+');"></p>';
jQuery('#itemRows').append(row);
frm.add_qty.value = '';
frm.add_name.value = '';
}
function removeRow(rnum) {
jQuery('#rowNum'+rnum).remove();
}
</script>

And the PHP part to test the submitted data:-
<?php$no = count($_GET['qty']);
for ($i=0; $i <$no ; $i++) {
echo $_GET['qty'][$i]."<br>";
echo $_GET['name'][$i]."<br>";

}
?>

До этой части все в порядке. Представленные данные отображаются, как ожидалось.
Но если я хочу отфильтровать отправленные данные, как показано ниже, я получаю один элемент (1-й): —

$gcode = filter_var($_GET['qty'],FILTER_SANITIZE_STRING);
$no = count($gcode);

Кажется проблема с массивом.
Как я мог отфильтровать представленную строку.
Должен ли я фильтровать каждый $_GET['qty'][$i] по отдельности?

0

Решение

Если вы хотите фильтровать переменные массива, вы должны использовать filter_var_array ().

В вашем случае что-то вроде этого:

$gcode = filter_var_array($_GET['qty'],FILTER_SANITIZE_STRING);
0

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

Других решений пока нет …

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