プロが教える店舗&オフィスのセキュリティ対策術

PHPはわかりますが、JSはまったくの初心者です。

こちらのサンプルでAJAXの練習中です。
http://www.imztry.net/dhtml/027/027-2.html
動作はするんですが、その値をどうすればフォームとして($_POST)で
受け取ることができるのか、お力をお借りしたいと思います。

「save」ボタンを押すと、下のほうにメッセージが流れます。
box3|node17;
box3|node18;
の値をPOSTデータで送りたいんですが、どうもうまくいきません。

A 回答 (2件)

function sendDragDropNodes() {


var req = new XMLHttpRequest();
var xml = xslTransform(document, 'dragdrop.xsl');

req.open('POST', 'receiver.php', true);
req.setRequestHeader('Content-Type', 'application/xml');
req.send(xml);

}

function xslTransform (doc, xsl) { // IE may not works
var xmlDoc, xslDoc, xslProc;

xslDoc = document.implementation.createDocument('', '', null);
xslDoc.async = false;
xslDoc.load(xsl);

xslProc = new XSLTProcessor();
xslProc.importStylesheet(xslDoc);

xmlDoc = xslProc.transformToDocument(doc);

return xmlDoc;
}

============= dragdrop.xsl ======================================
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8"/>

<xsl:template match="/">
<dragdrop>
<xsl:apply-templates select="//*[@id='dhtmlgoodies_dragDropContainer']//ul" />
</dragdrop>
</xsl:template>

<xsl:template match="ul">
<xsl:element name="{@id}">
<xsl:apply-templates select="li" />
</xsl:element>
</xsl:template>

<xsl:template match="li">
<xsl:element name="{@id}">
<xsl:copy-of select="text()" />
</xsl:element>
</xsl:template>

</xsl:stylesheet>

============= receiver.php ======================================
<?php
if (isset($HTTP_RAW_POST_DATA)) {

$xml = simplexml_load_string($HTTP_RAW_POST_DATA);
...
} else {

}
?>
    • good
    • 0

//@cc_on


function sendDragDropNodes() {
var req = new /*@if(1) ActiveXObject("Msxml2.XMLHTTP.3.0") @else@*/ XMLHttpRequest() /*@end@*/;
var data = dragDropData();

req.open('POST', 'receiver.cgi', true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(data);
}

function dragDropData() {
var data = [];
var uls = dragDropTopContainer.getElementsByTagName('UL');
for(var no=0;no<uls.length;no++){// LOoping through all <ul>
var lis = uls[no].getElementsByTagName('LI');
for(var no2=0;no2<lis.length;no2++){
data[data.length] = encodeURIComponent(uls[no].id) + '[]=' + encodeURIComponent(lis[no2].id);
}
}

return data.join('&');
}

<input type="button" value="save" onclick="sendDragDropNodes();" onkeypress="sendDragDropNodes();" />
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!