2013-08-07 2 views
0

Я следующий код:Почему использование значения createElement не отображает мой элемент ввода правильно?

$newDOM = new DOMDocument('1.0', 'utf-8'); 
$foo = $newDOM->createElement('Input', 'THIS IS MY VALUE'); 
$newDOM->appendChild($foo); 
echo $newDOM->saveHTML(); 

Это то, что выдается только: <Input>

Но когда я изменить createElement к «DIV» он работает нормально

Это то, что выводимый с 'DIV' или любой другой вход:

<div>THIS IS MY VALUE</div> 

Это мой var_dump($foo):

object(DOMElement)#5 (17) { 
    ["tagName"]=> 
    string(5) "Input" 
    ["schemaTypeInfo"]=> 
    NULL 
    ["nodeName"]=> 
    string(5) "Input" 
    ["nodeValue"]=> 
    string(16) "THIS IS MY VALUE" 
    ["nodeType"]=> 
    int(1) 

    ["parentNode"]=> 
    string(22) "(object value omitted)" 
    ["childNodes"]=> 
    string(22) "(object value omitted)" 
    ["firstChild"]=> 
    string(22) "(object value omitted)" 
    ["lastChild"]=> 
    string(22) "(object value omitted)" 
    ["previousSibling"]=> 
    NULL 
    ["attributes"]=> 
    string(22) "(object value omitted)" 
    ["ownerDocument"]=> 
    string(22) "(object value omitted)" 
    ["namespaceURI"]=> 
    NULL 
    ["prefix"]=> 
    string(0) "" 
    ["localName"]=> 
    string(5) "Input" 
    ["baseURI"]=> 
    NULL 
    ["textContent"]=> 
    string(16) "THIS IS MY VALUE" 
} 
+0

это единственное, что показывает – user2612821

+0

THIS IS MY VALUE
показывает, когда я использую DIV – user2612821

ответ

2

Второй аргумент createElement - это содержимое создаваемого тега. <input> теги не могут содержать текст. Вам необходимо установить свой атрибут value. Вы пытаетесь произвести <input value="this is my value">, а не <input>this is my value</input>.

См. createAttribute.

+0

Пожалуйста, дайте OP пример для улучшения вашего сообщения. –

+0

Но как это будет работать с радио-кнопками, что является моей проблемой ... – user2612821

+0

Также ::: Это работает, когда я эхо его или помещаю в переменную ... но я могу откликнуться прямо на радио Button. . Значение элемента. По умолчанию будет создан пустой элемент. Значение также можно установить позже с помощью DOMElement :: $ nodeValue. – user2612821

Смежные вопросы