2016-12-15 2 views
1

これは私のdomです:それは要素になることができるようにcreateElement()で変数$ nameを使用する方法。私は多くの方法を試みるが、これは同じように同じである。DOMのcreateElemen()でポスト値を送信する方法。それはエラーを取得し続ける

$node = $dom->documentElement; 
$phone = $node->appendChild($dom->createElement("model")); 
$phone->setAttribute('type', $type); 
$tolol = $phone->appendChild($dom->createElement(<?php echo $name;?>)); 
$tolol->setAttribute('id', $id); 

$tolol 
    ->appendChild($dom->createElement('displaySize')) 
    ->appendChild($dom->createTextNode($display)); 

これは私が欲しいの出力は次のようになります。

<model type="Microsoft Lumia"> 
<lumia id="550"> 
    <displaySize>4.7 inches (~64.7% screen-to-body ratio)</displaySize> 
    <platformOS> Microsoft Windows 10</platformOS> 
    <network>2G,3G,4G</network> 
    <cameraRear>5 MP, f/2.4, autofocus, LED flash</cameraRear> 
    <cameraFront>2 MP, f/2.8, 480p</cameraFront> 
    <RAM>1 GB RAM</RAM> 
    <ROM>8 GB</ROM> 
    <chipset>Qualcomm MSM8909 Snapdragon 210</chipset> 
    <battery> 2100 mAh</battery> 
    <price>MYR559</price> 
</lumia> 

別の出力:

<lumia id="640 LTE"> 
    <displaySize>5.0 inches (~67.6% screen-to-body ratio)</displaySize> 
    <platformOS> Microsoft Windows 10</platformOS> 
    <network>2G,3G,4G</network> 
    <cameraRear>8 MP, f/2.2, 28mm, autofocus, LED flash</cameraRear> 
    <cameraFront>1 MP, 720p</cameraFront> 
    <RAM>1 GB RAM</RAM> 
    <ROM>8 GB</ROM> 
    <chipset>Qualcomm MSM8926 Snapdragon 400</chipset> 
    <battery> 2500 mAh</battery> 
    <price>MYR699</price> 
</lumia> 
</model> 
+0

エラーを共有することはできますか?あなたがしたことだけを表示するよりも、おそらく(もっと)役立つでしょう... –

+0

構文解析エラー:C:\ xampp \ htdocs \ dom \ addPhone.phpの34行目で予期しない '<'構文エラー。createElementで$ nameを呼び出す方法()。 T_T – Akmal

+0

$ tolol = $ phone-> appendChild($ dom-> createElement(<?php echo $ name;?>)); PHPコード内でPHPの開始タグを使用する理由 – anwerj

答えて

1

開いPHPタグを必要としないので、あなたはすでに、PHPのコードです。 $ name変数を使用しているときは、PHPタグを再度開きます。貴方はするべきではない。

下記のXML文書の作成方法を参照してください。変数なしで作成しましたが、簡単に変更できます。

<?php 
//Creates DOM Document with version and encoding 
$dom = new \DomDocument("1.0", "utf-8"); 
//Creates an element named model 
$model = $dom->createElement("model"); 
//Sets an attribute named type 
$model->setAttribute("type", "Microsoft Lumia"); 
$lumia = $dom->createElement("lumia"); 
$lumia->setAttribute("id", "550"); 
//Appends the newly created element named displaySize and the end of lumia element 
$lumia->appendChild($dom->createElement("displaySize", "4.7 inches (~64.7% screen-to-body ratio)")); 
$lumia->appendChild($dom->createElement("platformOS", " Microsoft Windows 10")); 
$lumia->appendChild($dom->createElement("network", "2G,3G,4G")); 
$lumia->appendChild($dom->createElement("cameraRear", "5 MP, f/2.4, autofocus, LED flash")); 
$lumia->appendChild($dom->createElement("cameraFront", "2 MP, f/2.8, 480p")); 
$lumia->appendChild($dom->createElement("RAM", "1 GB RAM")); 
$lumia->appendChild($dom->createElement("ROM", "8 GB")); 
$lumia->appendChild($dom->createElement("chipset", "Qualcomm MSM8909 Snapdragon 210")); 
$lumia->appendChild($dom->createElement("battery", " 2100 mAh")); 
$lumia->appendChild($dom->createElement("price", "MYR559")); 
$model->appendChild($lumia); 
$dom->appendChild($model); 
//Displays the XML string 
echo $dom->saveXML(); 

あなたが$name変数を持っている場合は、createElement

<?php 
$name = "model"; 
//Note that you should not put "<" or ">" in your tag name 
$dom->createElement($name); 

でそれを使用することができますあなたがPHPコード内でPHPの開始タグを使用しているDomDocument

+0

私の編集した回答からわかるように、文書が作成されます。これで 'createElement'の変数' $ name'を使用するように更新することができます – AnthonyB

+0

しかし、 iphoneやsamsungのようなものを追加する場合はどうすればいいですか?フォームから値を投稿するからです。もし私がしたことがあれば、私は多くのフォームを使用する必要があります。 – Akmal

+0

例を追加しました。変数 'name'を使用して要素を作成することができます。 – AnthonyB

0

を参照してください。

$tolol = $phone->appendChild($dom->createElement(<?php echo $name;?>)); 

$nameが既に定義されている$名がそれ以外の場合の定義のどこかに、あなたのコード内でアップ定義されている場合、

$tolol = $phone->appendChild($dom->createElement($name)); 

チェックしてみてください。

+0

ありがとうございますが、致命的なエラーが表示されます。致命的なエラー:C:\ xampp \ htdocs \ dom \ addPhone.phpに「無効な文字エラー」というメッセージが表示され、キャッチされていない例外「DOMException」が見つかりました:34スタックトレース:#0 C:\ xampp \ htdocs \ dom \ addPhone.php(34) :DOMDocument-> createElement( '2')#1 {main}は34行目でC:\ xampp \ htdocs \ dom \ addPhone.phpにスローされます。$ name = $ _POST ['name']; – Akmal

+0

タグ名が「2」の無効な要素を作成しようとしていますが、実際にはどのタグ名にこのように – anwerj

+0

が必要かを確認してください。 phone.phpから、私はフォームからlumiaのような名前の電話の例を送ってほしい。それから私はそれを送ったaddPhone.php。 addPhoneでは、$ name = $ _POST ['name']を宣言します。しかし、私はちょうどあなたがしたことをしました。それは致命的なエラーを示します。 – Akmal

関連する問題