Обработка неизвестного количества значений в файле PHP - PullRequest
0 голосов
/ 21 декабря 2009

Форма, которая будет отправлять данные, будет иметь от 10 до 100 значений, отправляемых в файл PHP. Количество входов хранится в переменной с именем count в моей функции javascript, но я не знаю, как передать ее значение в мой файл PHP.

Другая идея, которая у меня была, заключалась в том, чтобы иметь цикл while, который обнаруживал нулевое значение, и иметь счетчик в цикле while, чтобы вести счет.

Как мне справиться с этим?

Ответы [ 6 ]

3 голосов
/ 21 декабря 2009

Не нужно отправлять счет. Вы можете просто представить свое динамическое число значений в виде массива. Вы можете использовать нотацию массива PHP в ваших name атрибутах:

Input 1: <input type="text" name="myvar[]" />
Input 2: <input type="text" name="myvar[]" />
...
Input n: <input type="text" name="myvar[]" />

На стороне PHP $_REQUEST['myvar'] будет массивом.

1 голос
/ 21 декабря 2009

Не зная больше о вашей реализации, я бы предложил последний из двух вариантов: использовать PHP для циклического перебора массива $ _POST и подсчета действительных значений, которые вы имеете. Это лучший вариант, так как он более безопасный и надежный.

1 голос
/ 21 декабря 2009

Я думаю, что мог бы быть более "правильный" способ сделать это, но то, что я бы сделал (без знания лучшего способа), это наличие скрытого элемента формы, например,

<input id="hidden_count" type="hidden" name="count" value="" />

И затем есть функция onsubmit, которая устанавливает это значение и возвращает true, чтобы форма продолжала

(с jQuery)

function onSubmitFunc(){
  $('#hidden_count').val(count);
  return true;
}

Я уверен, что есть более элегантное решение, но оно должно работать для того, что вам нужно.

0 голосов
/ 21 декабря 2009

Возможно, я не получаю это, но если count в вашем JS-файле соответствует количеству input элементов в form, отправляемом в ваш PHP-файл, почему бы не count() их на стороне сервера , Данные будут в массиве $_POST.

0 голосов
/ 21 декабря 2009

Полагаю, вы используете javascript для создания дополнительного элемента ввода, если вы просто называете возрастание, вы можете использовать count для циклического прохождения данных $ _POST. Или же используйте скрытую форму элемента для подсчета новых входных элементов и опубликуйте ее, чтобы у вас было правильное число, и вы знаете, как долго вы должны считать.

0 голосов
/ 21 декабря 2009

Если у вас есть доступ к Javascript, проще всего будет превратить ваши данные в JSON на стороне клиента, отправить их на сервер в виде строковой переменной и использовать json_decode на сервер, чтобы получить правильно отформатированное значение обратно. Вы можете отреагировать на событие отправки в вашей форме, чтобы Javascript вычислил JSON перед отправкой данных.

В противном случае вы можете сделать так, чтобы Javascript выводил количество полей для определенной скрытой переменной в вашей форме. Затем сервер может прочитать это значение и найти данные, введя их данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...