PHP: копирование в качестве значения атрибута в другой атрибут - PullRequest
1 голос
/ 24 июня 2011

Вот фрагмент из моего кода XHTML:

<form action="test.php" method="post">
  <input type="text" name="selector01" value="<?php echo $_SESSION['x']; ?>" />
  <button>next</button>

  <input type="submit" value="Submit" />
<form>

Дополнительные элементы ввода будут добавляться динамически при нажатии кнопки (с использованием JavaScript). Значение «name» будет увеличиваться (т. Е. selector02, selector03 и т. Д. ).

Я бы хотел скопировать значение каждого атрибута "name" и поместить его в переменную $ _SESSION.

Ответы [ 4 ]

1 голос
/ 24 июня 2011

Если вам нужны только поля ввода, имя которых начинается с «селектора», используйте:

foreach ( $_POST as $key => $value ) {
    if ( substr( $key, 0, 8 ) == 'selector' ) {
        $_SESSION[$key] = $value;
    }
}

Если вы хотите все поля формы, используйте:

$_SESSION = $_POST;

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

0 голосов
/ 24 июня 2011

Похоже, что вы фактически не отправляете форму для каждого нажатия кнопки, просто динамически добавляете новые поля.Если это так, то вы не можете напрямую манипулировать переменной PHP из Javascript.JS на стороне клиента, PHP на стороне сервера.

0 голосов
/ 24 июня 2011

При отправке test.php

сделать это:

$_SESSION = $_POST; // if no validation is needed
0 голосов
/ 24 июня 2011

Вы перебираете любой метод, на который ссылаетесь, и затем просто добавляете результат:

foreach($_POST as $item => $value)
{
    if(strpos($item, 'selector') === 0) $_SESSION[$item] = $value;
}
...