захват значения POST с помощью JavaScript - PullRequest
1 голос
/ 11 апреля 2011

Простите, что задаю, казалось бы, очевидный вопрос, но все мои поиски сводятся к руководству о том, как создавать значения POST с помощью JS, а не о том, как их получать (и использовать).

Что я хочу сделатьdo:

step1.php - форма POST в step2.php

step2.php - также форма, JS получает одно конкретное значение POST и работает с ним,затем обновляет эту новую форму соответственно

по причинам, не стоящим в ней, процесс должен быть двухэтапным // двухстраничным процессом.

Очевидное решение - просто сделать что-то вроде:

<script type="text/javascript">

    function damn_ugly () {

        var shameful = <?php echo $_POST['desiredDatum']; ?>;
        do more stuff...
    }

</script>

но это мне кажется немного грязным.

Есть ли лучший способ?или это действительно, как я должен сделать это?

Ответы [ 5 ]

4 голосов
/ 11 апреля 2011
var postData = <?php echo json_encode($_POST); ?>;

Очевидно, что вы можете изменить это, чтобы включить только определенные поля из $_POST, передав пользовательский массив в json_encode.

var desiredDatum = <?php echo json_encode($_POST['desiredDatum']); ?>;

Нет лучшего способа сделать это - и использоватьjson_encode гарантирует, что независимо от того, что содержится в переменной POST, ничто не сломается (по крайней мере, во время присваивания).

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

То есть , как вы должны это делать , JavaScript не может получить доступ к значениям POST другим способом.

Конечно, вы можете сделать его немного красивее: ваш php-скрипт поместит переменные POST в массив и напечатает массив в формате JSON . Теперь ваш javascript имеет массив.

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

Значения POST отправляются на сервер. После отправки только сервер может работать с этими значениями. Ваш пример - практически единственный вариант, к которому у вас есть доступ к значениям POST, которые были отправлены на сервер в предыдущем запросе.

0 голосов
/ 11 апреля 2011

Попробуйте это На втором шаге Страница 2:

Установить скрытое текстовое поле на странице:

<input type='hidden' name='text1' id = 'text1' value='<?php echo $_POST['desiredDatum']; ?>' />

Теперь, если вы используете jQuery, ниже приведен код

$(document).ready(function() {

var shameful = $('#text1').val();

});

если не использовать jQuery Then

var shameful = document.getElementById('text1').value;

Надеюсь, это то, что вы ищете.

0 голосов
/ 11 апреля 2011

JS не имеет доступа к значениям POST, он может только получать значения GET. Однако, поскольку вы используете сценарий PHP и можете передавать данные в JS, почему бы не передать данные функций JS в формате JSON? Вы можете использовать PHP-функцию json_encode для кодирования всех значений POST в JSON, которые затем можно легко использовать в коде JS.

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