将html表单值存储在xml文件中

时间:2011-04-24 12:15:18

标签: php javascript html xml

我在'item_detail'(data.html)字段中输入了15个字符,但我想在xml文件(item.xml)的'itemdetail'元素中只存储10个字符,我该怎么办?

data.html ----

 <form>
     <p>Id:<input type="text" name= "id" size="10" /> </p>
     <p>Item Detail:<textarea name="item_detail" rows="3" cols="50" ></textarea></p>
     <input name="submit" type = "button" onClick = "getData('data.php','info', id.value, ,item_detail.value)" value = "Add Item" />

</form>    

 <div id="info"> </div>

data.js -------

var xhr = createRequest();
function getData(dataSource, divID, id,itemd) {
if(xhr) {
var obj = document.getElementById(divID);
var requestbody ="idd="+encodeURIComponent(id)+"&itd="+encodeURIComponent(itemd);
xhr.open("POST", dataSource, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
obj.innerHTML = xhr.responseText;
} // end if
} // end anonymous call-back function
xhr.send(requestbody);
} // end if
} // end function getData()

data.php文件-----------

$id= $_POST["idd"];
$item_detail= $_POST["itd"];


            $xml = new DomDocument();
            $xml->load("item.xml");
            $xml->formatOutput = true;   
            $items = $xml->firstChild;     
            $item = $xml->createElement('item');   
            $items->appendChild($item); 
            $id = $xml->createElement('id');
            $itemdetail = $xml->createElement('itemdetail'); 
            $item->appendChild( $id );
            $id->nodeValue = $id;
            $item->appendChild( $itemdetail );
            $ItemDetail->nodeValue = $item_detail;


            $xml->save("item.xml");

           }

1 个答案:

答案 0 :(得分:1)

您可以使用php substr

$item_detail= substr($_POST["itd"], 0,10);

作为旁注,您应该考虑在之前清理$ _POST数据。

修改

我已经整理了你的变量名,就像用xml vars覆盖post vars一样

data.php

 <?php
$post_id= $_POST["idd"];
$post_item_detail = substr($_POST["itd"], 0,10);

$xml = new DomDocument();
$xml->load("item.xml");

$xml->formatOutput = true;   

$items = $xml->documentElement;
$itemsLength = $items->getElementsByTagName('item');
for ($i = 0; $i < $itemsLength->length; $i++) {
$itm = $items->getElementsByTagName('item')->item($i);
$oldItem = $items->removeChild($itm);
}


$items = $xml->firstChild;     
$item = $xml->createElement('item');   
$items->appendChild($item); 
$id = $xml->createElement('id');
$itemdetail = $xml->createElement('itemdetail'); 
$item->appendChild( $id );
$id->nodeValue = $post_id;
$item->appendChild( $itemdetail );
$itemdetail->nodeValue = $post_item_detail;

$xml->save("item.xml");

?>

item.xml

<?xml version="1.0" encoding="UTF-8"?>
<doc>

</doc>