包括表格,行动问题

时间:2011-04-17 05:09:06

标签: php forms

说我正在读一个帖子或浏览帖子

分别在read.php?tid=1category.php?cid=1

我的post_form.php形式included();将这个值用于一些isset函数以确保有一个主题和正文,但表单操作指向post.php处理表单,如果没有提交正文和主题,?tid or ?cid将丢失,表单会将您带到posts.php

从父tid?cid?值传递帖子的最佳方式是什么?

2 个答案:

答案 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>

但是,要小心依赖隐藏表单元素中的值,尤其是在数据敏感的情况下。恶意用户可能会更改已发布的表单数据,因此您不希望在其中添加不应更改的内容(如价格)。