Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Javascript传递隐藏的表单元素集_Javascript_Jquery_Html_Input_Hidden - Fatal编程技术网

通过Javascript传递隐藏的表单元素集

通过Javascript传递隐藏的表单元素集,javascript,jquery,html,input,hidden,Javascript,Jquery,Html,Input,Hidden,我有一个简单的HTML表单,它有一些输入字段用于发送SMS/TXT消息。我还有一个jQuery脚本,它计算输入的字符数,并计算出发送消息将使用多少短信信用 这些将显示在div中,如下所示: <div id='message'> <span id='char'>0</span> characters, <span id='msgs'>0</span> SMS Credit(s) </div>​​​​ 0个字符, 0个短

我有一个简单的HTML表单,它有一些输入字段用于发送SMS/TXT消息。我还有一个jQuery脚本,它计算输入的字符数,并计算出发送消息将使用多少短信信用

这些将显示在div中,如下所示:

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

0个字符,
0个短信信用卡
​​​​
您可以看到整个页面减去大部分php(只是为了简单起见)的内容

我想做的是包括字符数(从0开始)和学分数(从0开始) 我不确定是否可以这样做,否则我需要通过php处理页面再次计算这些值,如果不能的话。只是尽量避免重复同样的操作两次,一次在Javascript中,然后在php中

非常感谢,,
Steve

这是可以做到的。你所需要做的就是创建两个隐藏的输入元素(例如
,并在计算完它们后将值放入其中。但是你不应该这样做(因此没有代码-我不鼓励你)


无论如何,您都应该在服务器上计算任何像这样的关键内容,因为理论上,用户可以发布任何他们想要的内容,这样他们就可以更改他们的请求,说“credits=0”您不想相信这一点。或者,如果他们篡改了字符数,那么可能稍后会有什么东西崩溃,因为它接收到的输入太长……或者可能他们告诉您它的字符数为负数……只需在服务器上重新验证即可。该走了。:)

这是可以做到的。你所需要做的就是创建几个隐藏的输入元素(例如
,并在计算完它们后将值放在那里。但是你不应该这样做(因此没有代码-我不鼓励你)


无论如何,您都应该在服务器上计算任何像这样的关键内容,因为理论上,用户可以发布任何他们想要的内容,这样他们就可以更改他们的请求,说“credits=0”您不想相信这一点。或者,如果他们篡改了字符数,那么可能稍后会有什么东西崩溃,因为它接收到的输入太长……或者可能他们告诉您它的字符数为负数……只需在服务器上重新验证即可。该走了。:)

您可以创建两个隐藏字段,将计数放在那里以及跨度中,然后与表单一起提交。但是,通过伪造带有假字符和信用计数的http请求,这个系统可以很容易地进行游戏,因此您可能仍然希望在服务器上进行计数,以避免欺诈。如果用户关闭了javascript,也可以这样做计数将为零

在你现在拥有的地方这样做

$chars.text(len);

假设你有

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


在您的表单中。对积分也可以这样做。

您可以创建几个隐藏字段,将计数放在那里以及跨度中,然后与表单一起提交。但是,这个系统可以通过伪造带有假字符和信用计数的http请求来轻松操作,因此您可能仍然希望在服务器上进行计数,以避免欺诈。Al因此,如果用户关闭了javascript,则计数将为零

在你现在拥有的地方这样做

$chars.text(len);

假设你有

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


在您的表单中。对积分也这样做。

+1指出了巨大的缺陷。用户为什么要覆盖并发送
积分=0
。如果有任何问题,他们会说,
积分=999999..
:)@Anurag:发送消息将使用多少积分。这就像一个价格,所以你刚刚破产我认为这是用户剩余的积分。我的意思是,当我们通过JavaScript发送所有这些信息时,为什么剩余的积分不能来自一个隐藏的字段呢?@Anurag:我不会担心的。我们已经帮助OP学会了做大事的正确方法。希望他不会将任何信用信息传递给服务器,因此这一切都无关紧要+1.指出了巨大的缺陷。为什么用户会覆盖并发送
credits=0
。如果有什么问题的话,他们会说,
credits=999999..
:)@Anurag:发送消息需要多少信用。这就像一个价格,所以你刚刚破产我认为这是用户剩余的积分。我的意思是,当我们通过JavaScript发送所有这些信息时,为什么剩余的积分不能来自一个隐藏的字段呢?@Anurag:我不会担心的。我们已经帮助OP学会了做大事的正确方法。希望他不会将任何信用信息传递给服务器,因此这一切都无关紧要