一般我們submit給server的資料,通常都是一筆的,可能為填寫表單後即送出。但是在
某些情況下,我們可否會submit多筆的資料給server呢?
剛好那時有寫一個大量新增地圖資料的功能,上傳後透過Server幫我先讀取Excel檔案裡面的
內容,並且response to client看是否有什麼問題(可能為這筆資料已新增),之後再做確認看是
否要新增進資料庫內。
在這裡我先寫一段jQuery的sample code,如下:
var send_xml_data = null;
send_xml_data = "<dataes>";
send_xml_data += "<data><name>Ben</name><gender>男</gender></data>";
send_xml_data += "<data><name>Mark</name><gender>男</gender></data>";
send_xml_data += "</dataes>";
$(document).ready(function() {
$.ajax({
type: 'POST',
url: 'parser_sql.php?r='+Math.random(),
processData: false,
contentType: "text/xml",
data: send_xml_data,
dataType: 'text',
success: function(text){
alert(text);
}
});
});
在這邊我自訂了XML Data準備要send to Server,請注意processData的attribute預設為true
,根據jQuery的官網說明是說
"If you want to send a DOMDocument, or other non-processed data, set this option to false."
因此我打破了原先的規則,選擇了自訂的DOM data形式,所以請設為false
Server端的部分,我是用PHP code去接收send過來的資料,code如下:
$rawdata = file_get_contents('php://input');
$parse_xml = simplexml_load_string($rawdata);
for($i = 0;$i < count($parse_xml->data); $i++){
$data = $parse_xml->data[$i];
echo $data->name."-".$data->gender."\n";
}
您可以利用file_get_contents function來read the stream raw data,在此您就可以去parser
the XML data format,並且新增進資料庫內!本範例是response data to client,藉由alert
來達到我是否有成功傳送資料過去,並且將以text的資料格式讀取。
留言
張貼留言