• 締切済み

とあるAJAXでの値の受け取り方について

PHPはわかりますが、JSはまったくの初心者です。 こちらのサンプルでAJAXの練習中です。 http://www.imztry.net/dhtml/027/027-2.html 動作はするんですが、その値をどうすればフォームとして($_POST)で 受け取ることができるのか、お力をお借りしたいと思います。 「save」ボタンを押すと、下のほうにメッセージが流れます。 box3|node17; box3|node18; の値をPOSTデータで送りたいんですが、どうもうまくいきません。

みんなの回答

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.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 { } ?>

全文を見る
すると、全ての回答が全文表示されます。
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.1

//@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();" />

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Node.jsでajaxがうまくいかない

    nodejs初心者なのでよくわからずやっていて恐縮ですが、うまくいきません。 https://phpotameshi-hoto345.c9users.io/node-ajax/hello_ajax.html なのですがもともとはphpで送信ボタンを押したときにphpが実行されるものでしたが、これを少し改良してNode.jsでやってみようと思ったのですが、phpと違って <script src="scripts/hello.js"></script> のようにnodejsを読み込んでやれば同じ結果になると思ったのですがうまくいきません。 その前にローカルでもNode.jsは使えるようなので >node test.js Server running at http://localhost:8124/ のようにしてローカルでやってもhttp://localhost:8124/自体は問題なく立ち上がりtest.jsの中身は実行されたのですが、ajaxの方がうまくいきません。 ローカルでのNode.jsもServer running at http://localhost:8124/ となっていればNode.jsのサーバは起動しているので、 ローカルでhello_ajax.htmlを起動して、buttonを押せばajaxもnodejsも実行されるのではないでしょうか?

  • AJAXチャット

    AJAXを利用したチャットを作っています。 Prototype.jsの.PeriodicalUpdaterを使って定期的にリロードすると同じ情報が繰り返し表示されてしまいます。 例えば ------------------------ 名前:aaa コメント:テスト ----------------------- とフォームに入力すると、 この情報がPeriodicalUpdaterで指定した秒数ごとに増えていってしまいます。。。 改善策を教えてください。 JavaSciriptの部分 function chat() { // パラメータを作成 var parameter = "name=" + $F('name').escapeHTML() + "&" + "email=" + $F('email').escapeHTML() + "&" + "comment=" + $F('comment').escapeHTML(); // Ajax.Updaterオブジェクトを作成 var myAjax = new Ajax.Updater( 'placeholder', // 差し込む要素 'test.php', // 呼び出し先のURL { method: 'post', // メソッド postBody: parameter, // ポストされるボディ部 } ); var myajax = new Ajax.PeriodicalUpdater('placeholder', 'test.php', {postBody: parameter,frequency: 10}); } postでサーバに送信してPHPで受け取ってます。 JavaScriptはフォームの送信ボタンによって呼び出されます。

  • jqueryの$.ajaxでPHPに値を渡したい

    下記の様にjquery(ver1.4.x)の$.ajax関数を使って、 ajaxでPHPに値を渡したいと思っています。 ■Javascript (中略) $.ajax({ type:"POST", url:"test.php", data:{"check":check}, success:function(){ alert("OK"); } }); ■PHP(test.php) if ($_POST) { $_SESSION["data"][] = $_POST["check"]; } この時、普通の状態ならtest.phpで値が受け取れ、$_SESSION["data"]の配列内には$_POST["check"]の値が格納される事を確認しました。 しかし、ブラウザのCookieを無効(ブロック)に設定した場合のみ、$_SESSION["data"]の中には$_POST["check"]の値が入らないのです。 session_start();はJavascriptのあるHTML、test.php両方に書かれています。 クッキー無効の場合はJavascript(ajax)-PHP間でセッションは切断されてしまうのでしょうか? php.iniの設定では session_use_cookiesもsession_use_only_cookiesもOnになっています。 詳しい方おられましたらご教授宜しくお願いします。

    • ベストアンサー
    • PHP
  • AJAXでformから値を飛ばす

    AJAXを勉強してます。 formから値を飛ばす事はできたのですが、 直リンクというのはできないのでしょうか? uri ="http://www.○○○.cgi";の部分に直のアドレスを入れたいのですが、教えていただけないでしょうか? よろしくお願いいたします。 <script src="prototype.js"></script> <script> function dosubmit( ) { uri ="http://www.○○○.cgi"; new Ajax.Updater( 'result', 'uri', { method: 'post', parameters: $('myform').serialize() } ); $('myform').reset(); } </script>

  • AJAXでformから値を飛ばす

    困り度: すぐに回答を! AJAXを勉強してます。 formから値を飛ばす事はできたのですが、 直リンクというのはできないのでしょうか? uri = ​'http://www.​○○○.cgi' ;の部分に直のアドレスを入れたいのですが、教えていただけないでしょうか? よろしくお願いいたします。 <script src="prototype.js"></script> <script> function dosubmit( ) { uri ='​http://www.​○○○.cgi'; new Ajax.Updater( 'result', 'uri', { method: 'post', parameters: $('myform').serialize() } ); $('myform').reset(); } </script>

  • Ajax以外で、JavaScriptからPHPへ渡

    Ajax通信以外で、JavaScriptからPHPへ変数(配列)を渡したいのですが、 可能でしょうか? 下記のような状態の時、js変数dataを、Ajax通信を利用せずにPHP変数として取得したいのですが、どうすればよいでしょうか? JavaScript関数の中で、PHPフォームの送信ボタンをクリックさせる(ような)ことは出来ないのでしょうか? <button type="button" onclick="testsubmit();">送信</button> <script> function testsubmit(){  js処理;  var data = ★★; } </script> ■最終的にやりたいこと ・ボタンをクリックしたら、js処理で取得したjs変数(配列)を、Ajax通信を利用せずに、PHP変数として受け取りたい ・それを出来れば1クリックで処理したい

  • どこまでがAjaxなの?

    現在、Ajaxを勉強中の初心者です。 質問のタイトル通りなのですが、どこまでがAjaxなのかイマイチわかりません。 AjaxはJavaScript + XMLで非同期通信をする技術ですが 1.画像やプログラムファイルをサーバPC側に入れておいてクライアントPC側でラジオボタンの選択によって画像表示を変えるのはAjaxですか、それともただのJavaScriptですか? 2.サーバを使って以下のような入力可能文字カウンタを表示させるのはAjaxですか、それともただのJavaScriptですか? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>文字のカウント</title> </head> <body> <form>   <textarea cols="46" rows="5" id="title1" name="title1" size="50"></textarea><br />   あと<span id="inputlength1">20</span>文字入力できます<br /> </form>   <script type="text/javascript"><!--     function lengthCounter (node, max, cut) {       max = max || Number (node.maxLength) || 20;       return function () {         var rest = max - node.value.length;           if (rest < 0) {             if (cut) {               alert ('20文字以内にしてください');               rest = max;               node.value = node.value.substring (0, max);             }           }           return rest;       };     }     function dispValue (node, cbFunc) {       return function () {         node.firstChild.nodeValue = cbFunc ();   };     }     setInterval (dispValue ( document.getElementById ('inputlength1'),     lengthCounter (document.getElementById ('title1'), 20, true)), 100);   // --></script> </body> </html> 3.「googleサジェストのインクリメンタル検索にはAjaxの技術が利用されている」←ここでのAjaxにはPHPも含まれますか? 私はPHPをAjaxの枠には入れないような気がします。正確にはPHPとAjaxでインクリメンタル検索機能がつくられていると思うのですが。 4.PHPのみでAjaxと同じ非同期通信ができればそれはAjaxと呼ぶのか? よろしくお願いします。

    • ベストアンサー
    • AJAX
  • テキストフィールドの値に変更があったら

    テキストフィールド(start_date)では、 $("#start_date").datepicker({dateFormat:'yy-mm-dd'}); として日付入力をします。 その日付フィールドに変更があったら、ajaxaで処理をしたいのです。 そこで、jsに $(document).ready(function() { $(".start_date").change(function(){ var d=$(this).val(); var dataString = 'start_date'+ d; $.ajax({ type: "POST", url: "ajax_org.php", data: dataString, cache: false, success: function(html){ $(".org_id").html(html); } }); }); }); と記述し、変更があったらajax_org.phpを読んで、セレクトボックスの内容を変更させようと しているのですが、このajax_org.phpにテキストボックスの内容がPOSTされないのです。 セレクトボックスに変更があった場合には、valの値が、上記の記述でPOSTで読めるのですが、 なにがいけないのでしょうか? ご教授お願いします!!

    • 締切済み
    • PHP
  • AjaxでDBと連携した動的リストボックスを作りたい

    こんにちわ。 PHPの学習を始めたばかりなのですがリストボックスを使ったWEBで行き詰っています。 リストボックスは3つあり1つ目をSQL Server(ODBC接続)より値を表示して1つ目の値によって条件を絞った値を表示するこれもSQL Server(ODBC接続)です。3つめも同様の仕組みです。 数日間調べていたのですがSQL Serverを使用した例がありませんでした。 ご存知のサンプルがございましたら教えて下さい。 submitでのリストボックス連携はできるのですが画面のちらつきを改修して欲しいとのことからAjaxに辿り着きました。 皆様のお力をお貸し頂き解決までお付き合い頂ければ幸いです。 どうぞよろしくお願い致します。

    • 締切済み
    • PHP
  • Ajaxの質問です。

    Jquery php mysqlを利用したAjaxの質問です。 http://webcake.no003.info/webdesign/jquery-ajax-php-json-sample.html 上記サイトを参考にしています。 データをpostで渡していると思うのですが、 上記サイトですと、 クロスサイトフォージェリ対策はどの様に書いたらよいでしょうか? Jqueryのクロスサイトフォージェリ対策のよい情報がなかなか見つかりません。 PHPのみですと、postで渡すリファラー、トークン照合などあると思うのですが、 Jqueryでリファラーチェック、トークン作成、などはどう書くのでしょうか? 教えてください。