Передача скрытых элементов формы, установленных с помощью Javascript - PullRequest
0 голосов
/ 15 июля 2010

У меня есть простая форма HTML, в которой есть несколько полей ввода для отправки сообщения SMS / TXT.У меня также есть скрипт jQuery, который подсчитывает количество введенных символов, а также определяет, сколько SMS-кредитов будет использовано для отправки сообщения.

Они выглядят следующим образом:

<div id='message'> 
<span id='char'>0</span> characters, 
<span id='msgs'>0</span> SMS Credit(s)
</div>​​​​

Вы можете увидеть всю страницу минус большую часть php (просто для простоты) на http://jsfiddle.net/gHAcM/

Что я хотел бы сделать, так это включить количество символов (от 0) и количествокредиты (от 0

Я не уверен, что это можно сделать, в противном случае мне нужно будет снова вычислить эти значения через страницу обработки php, если они не могут. Просто стараюсь не делать одно и то же дважды, один раз вJavascript, а затем снова в PHP.

Большое спасибо, Стив

Ответы [ 2 ]

5 голосов
/ 15 июля 2010

Это можно сделать.Все, что вам нужно сделать, это создать пару скрытых входных элементов (например, <input type="hidden" name="characterCount" /> и поместить значения туда, когда вы их вычислили. Однако вы НЕ ДОЛЖНЫ делать это (следовательно, нет кода - я не хочу вас поощрять)).

Вы все равно должны всегда рассчитывать что-то критическое на сервере, так как в теории пользователь может публиковать все, что ему захочется, чтобы он мог изменить свой запрос на "credits = 0", а вы не хотитедоверяйте этому. Или, если они возьмутся за подсчет символов, то предположительно, что somethign позже потерпит крах, потому что он получит слишком длинный ввод ... Или, может быть, они сказали вам, что у него было отрицательное количество символов ... Просто перепроверьте на сервере.путь. :) 1004 *

0 голосов
/ 15 июля 2010

Вы можете сделать пару скрытых полей и поставить счет там, а также в пролетах, а затем отправить их с формой. Однако эту систему можно легко настроить, подделав http-запрос с поддельным символом и количеством кредитов, так что вы можете продолжать подсчет на сервере, чтобы избежать мошенничества. Также, если у пользователя отключен JavaScript, счетчик будет равен нулю.

Чтобы сделать это там, где у вас сейчас есть

$chars.text(len);

добавить

$("#my_hidden_char_count").val(len);

что предполагает, что у вас есть

<input id="my_hidden_char_count" value="0"></input>

в вашей форме. Сделайте то же самое для кредитов.

...