说我正在读一个帖子或浏览帖子
分别在read.php?tid=1
或category.php?cid=1
我的post_form.php
形式included();
将这个值用于一些isset函数以确保有一个主题和正文,但表单操作指向post.php处理表单,如果没有提交正文和主题,?tid or ?cid
将丢失,表单会将您带到posts.php
从父tid?
或cid?
值传递帖子的最佳方式是什么?
答案 0 :(得分:2)
您可以使用type="hidden"
INPUT元素来包含您不希望用户查看/操作的值。
<form ... >
<input type="hidden" name="tid" value="00001"/>
<input type="hidden" name="cid" value="abc-009"/>
...
</form>
此外,如果您需要将CID / TID数据加载到表单字段中,您可以尝试以下操作(使用隐藏字段,我使用文本字段,以便您可以看到它正常工作):
CID: <input type="text" id="cid" name="cid" value=""/><br/>
TID: <input type="text" id="tid" name="tid" value=""/>
function getString() {
// You want to use the first one that I commented out, and remove the other.
//var url = unescape(window.document.location);
var url = "http://www.example.com/?tid=0011&cid=mainpromo2";
var get = {};
if (url.indexOf('?') > -1) {
_get = url.substr(url.indexOf('?')+1);
_get = _get.split("&");
for (var i = 0; i < _get.length; i++) {
pairs = _get[i].split('=');
key = pairs[0];
value = pairs[1];
get[key] = value;
}
}
return get;
}
getvars = getString();
document.getElementById('cid').value = getvars.cid;
document.getElementById('tid').value = getvars.tid;
http://jsfiddle.net/userdude/Vuenp/1/
(注意上面需要在解析表单后运行。)
当然,如果使用jQuery,这会更容易。
答案 1 :(得分:1)
隐藏的HTML元素允许您在页面之间发送表单数据。
<form type=""...>
<input type="hidden" name"xx" value="yy" />
</form>
但是,要小心依赖隐藏表单元素中的值,尤其是在数据敏感的情况下。恶意用户可能会更改已发布的表单数据,因此您不希望在其中添加不应更改的内容(如价格)。