добавить аргументы в $ _POST? - PullRequest
0 голосов
/ 02 апреля 2011

Я пытался использовать $_GET, чтобы попытаться управлять моим файлом журнала помеченных учетных записей, но эта новая ситуация не совсем работает.

if (isset($_GET['marked'])) {
        if ($_GET['marked'] == 'read') {
            if (isset($_POST['mark'])) {
                foreach ($_POST['mark'] as $mark) {
                    mysql_query("UPDATE logged SET status = '1' WHERE timeLogged = $mark");
                    echo "<meta http-equiv='refresh' content='0;url=/admincpanel/flagged.php'>";
                }
            }
        }
        else if ($_GET['marked'] == 'unread') {
            if (isset($_POST['mark'])) {
                foreach ($_POST['mark'] as $mark) {
                    mysql_query("UPDATE logged SET status = '0' WHERE timeLogged = $mark");
                    echo "<meta http-equiv='refresh' content='0;url=/admincpanel/flagged.php'>";
                }
            }
        }
        else if ($_GET['marked'] == 'save') {
            if (isset($_POST['mark'])) {
                foreach ($_POST['mark'] as $mark) {
                    mysql_query("UPDATE logged SET status = '2' WHERE timeLogged = $mark");
                    echo "<meta http-equiv='refresh' content='0;url=/admincpanel/flagged.php'>";
                }
            }
        }
    }

и у меня есть кнопки: Mark as <a href=\"?marked=read\" onclick=\"submitForm();\"><i>read</i></a><a href=\"?marked=unread\" onclick=\"submitForm();\">/unread</a>

Я использую чекбоксы, чтобы выбрать, какие строки я хочу, и без $ _GET по умолчанию submitForm (); работал просто отлично.

Это сработало: Mark as <a href=\"#\" onclick=\"submitForm();\"><i>read</i></a>

    if (isset($_POST['mark'])) {
        foreach ($_POST['mark'] as $mark) {
            mysql_query("UPDATE logged SET status = '1' WHERE timeLogged = $mark");
            echo "<meta http-equiv='refresh' content='0;url=/admincpanel/flagged.php'>";
        }
    }

Как я могу заставить мои другие маркеры (читать, читать, сохранять) работать? Отправка формы и получение результатов - единственная работа с $_POST, поэтому мне нужно добавить дополнительные аргументы в $_POST верно?

если это поможет, то это javascript:

function submitForm() {
    document.logs.submit();
}

Подводя итог, я пытаюсь сделать состояние обновления чтения равным 1, непрочитанное состояние 0 и сохранить состояние 2. И использование $_GET не работает - или я делаю это неправильно. Итак, что я могу сделать, чтобы сделать эту работу?

Спасибо.

Ответы [ 3 ]

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

Hy Попробуйте добавить скрытое поле в форме:

<input type="hidden" name="marked" id="marked" value="" />

Затем кнопки:

`Пометить как

<a href=\"?marked=read\" onclick=\"submitForm('read');\"><i>read</i></a><a href=\"?marked=unread\" onclick=\"submitForm('unread');\">/unread</a>`

Затем функция JavaScript:

function submitForm(mark) {
  document.getElementById('marked').value = mark;
  document.logs.submit();
}`

Затем в сценарии php используйте $ _REQUEST ['отмеченный'] вместо $ _GET

1 голос
/ 02 апреля 2011

Попробуйте это для php-кода, немного чище и лаконичнее:

if (isset($_GET['marked'])) {
    if ($_GET['marked') == 'read')
        $status = 1;
    elseif ($_GET['marked'] == 'unread')
        $status = 0;
    else
        $status = 1;
    }
if (isset($_POST['mark'])) {
    foreach ($_POST['mark'] as $mark) {
        mysql_query("UPDATE logged SET status = $status WHERE timeLogged = $mark");
        echo "<meta http-equiv='refresh' content='0;url=/admincpane/flagged.php'>";
        }
    }
1 голос
/ 02 апреля 2011

href="?marked=read" никогда не отправляется на сервер, потому что вместо этого вы отправляете форму.

Чтобы решить эту проблему, вы можете добавить аргумент в функцию submitForm() и сохранить этот аргумент в качестве значения.скрытого ввода формы с именем «отмечен».

Примерно так:

Mark as <a href="#" onclick="submitForm('read')">read</a>

и

function submitForm(marked) {
  // TODO: Setup hidden input field with the marked argument
  document.logs.submit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...