Включая формы, проблема действий - PullRequest
0 голосов
/ 17 апреля 2011

Скажи, что я читаю тему или просматриваю темы

при read.php?tid=1 или category.php?cid=1 соответственно

И моя форма post_form.php, которая равна included();, использует это значение для нескольких функций isset, чтобы убедиться, что есть субъект и тело, однако действие формы указывает на post.php, который обрабатывает форму, так что если нет тело и тема отправлены, ?tid or ?cid потеряно, и форма приводит вас к posts.php

Как лучше всего передать сообщение от родительского tid? или cid? значения?

Ответы [ 2 ]

2 голосов
/ 17 апреля 2011

Вы можете использовать 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 голос
/ 17 апреля 2011

Скрытый элемент HTML позволит вам отправлять данные формы между страницами.

<form type=""...>
<input type="hidden" name"xx" value="yy" />
</form>

Однако будьте осторожны, полагаясь на значения в скрытых элементах формы, особенно если данные конфиденциальны. Злонамеренные пользователи могут изменять данные формы, которые публикуются, поэтому вы не захотите помещать что-то, что не должно быть изменено (например, цена).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...