我有一个简单的HTML表单,其中包含一些用于发送SMS / TXT消息的输入字段。我还有一个jQuery脚本,可以计算输入的字符数,还可以计算出将使用多少个SMS Credits来发送消息。
它们出现在div中,如下所示:
<div id='message'>
<span id='char'>0</span> characters,
<span id='msgs'>0</span> SMS Credit(s)
</div>
你可以在http://jsfiddle.net/gHAcM/看到整个页面减去大部分的php(只是为了简单起见)
我想要做的是包括字符数(从0开始)和信用数(从0开始)
我不确定是否可以这样做,否则我需要通过php处理页面再次计算这些值,如果他们不能。只是试图避免两次做同样的事情,一次是在Javascript中再一次在PHP中。
非常感谢, 史蒂夫
答案 0 :(得分:5)
可以做到。你需要做的就是创建一些隐藏的输入元素(例如<input type="hidden" name="characterCount" />
,并在计算它们时将值放在那里。但是你不应该这样做(因此没有代码 - 我不想知道鼓励你)。
你总是应该在服务器上计算这样的任何重要事项,因为从理论上讲,用户可以发布他们想要的任何内容,这样他们就可以改变他们的请求,说“credits = 0”而你不想信任。或者如果他们弄乱了字符数,那么大概会因为收到太长的输入而导致某些东西崩溃......或许他们告诉你它的字符数为负数......只需在服务器上重新验证即可。它的方式去。 :)
答案 1 :(得分:0)
您可以创建一些隐藏字段并将计数放在那里以及在跨度中,然后使用表单提交它们。但是,通过伪造具有假字符和信用计数的http请求,可以轻松地对该系统进行游戏,因此您可能仍希望在服务器上进行计数以避免欺诈。此外,如果用户关闭了javascript,则计数将为零。
要在现有
的情况下执行此操作$chars.text(len);
添加
$("#my_hidden_char_count").val(len);
假设你有
<input id="my_hidden_char_count" value="0"></input>
在您的表单中。为积分做同样的事。