SimpleXML: добавить одно дерево в другое

У меня есть два дерева XML, и я хотел бы добавить одно дерево в качестве листа к другому.

Видимо:

$tree2->addChild('leaf', $tree1);

не работает, так как копирует только первое корневой узел.

Хорошо, тогда я подумал, что мне нужно пройти по всему первому дереву, добавив каждый элемент один за другим ко второму.

Но рассмотрим XML следующим образом:

<root>
  aaa
  <bbb/>
  ccc
</root>

Как получить доступ к «ccc» ? tree1-> children () возвращает просто "bbb". Что-то вроде $ _POST ['name'] = "Denniss"; Есть ли способ сделать это? РЕДАКТИРОВАТЬ: Кто-то ...

Есть ли способ установить $ _ POST ['var'] без использования поля, связанного с формой (no type = 'hidden') и с использованием только PHP. Что-то вроде

$_POST['name'] = "Denniss";

Есть ли способ сделать это?

РЕДАКТИРОВАТЬ: Кто-то попросил меня прояснить это. Так, например, у меня есть страница с формой на ней, форма выглядит примерно так

<form method='post' action='next.php'>
<input type='text' name='text' value='' />
<input type='submit' name='submit' value='Submit'/>
</form>

После нажатия кнопки «Отправить» я хочу перенаправить на next.php. Есть ли способ установить для переменной $ _POST ['text'] другое значение? Как сделать так, чтобы при нажатии на другую кнопку отправки (например) $ _POST ['text'] было тем, что я установил на next.php без использования скрытого поля.

Дайте мне знать, если это до сих пор не ясно, и спасибо за вашу помощь.

51
задан Ave 3 June 2014 в 08:53
поделиться

3 ответа

Да, просто установите для него другое значение:

$_POST['text'] = 'another value';

Это заменит предыдущее значение, соответствующее ключу text массива. $ _ POST является суперглобальным ассоциативным массивом , и вы можете изменять значения как обычный массив PHP .

Предупреждение: Это изменение видно только в пределах той же области выполнения PHP. После завершения выполнения и загрузки страницы массив $ _ POST очищается. При отправке новой формы будет создан новый массив $ _ POST .

Если вы хотите, чтобы значение сохранялось при отправке формы, вам нужно будет поместить его в форму как атрибут значение тега input или получить его из хранилища данных.

78
ответ дан 7 November 2019 в 10:11
поделиться

Если вы хотите установить в $ _POST ['text'] другое значение, почему бы не использовать:

$_POST['text'] = $var;

в next.php?

6
ответ дан 7 November 2019 в 10:11
поделиться

вы можете сделать это с помощью ajax или отправив HTTP-заголовки + контент, например:

POST /xyz.php HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0
Content-Length: 27
Content-Type: application/x-www-form-urlencoded

userid=joe&password=guessme
3
ответ дан 7 November 2019 в 10:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: