2016-03-22 5 views
-1

以下のファイルは、クエリ文字列に変数を渡します。私はgetElementByIdを使用してJavaScriptのクエリー文字列にオブジェクトを渡す方法

  1. document.getElementById("getthis").innerHTMLを取得し、 var getthisに保存行うことができる午前何

  2. 取得値が、私はこれがdocument.getElementById("list1").innerHTMLdocument.getElementById("list2").innerHTMLdocument.getElementById("list3").innerHTML値とvar dataに保存ゲット

    1. を行うことができないのです何var from

    $('#first').val();を選択して保存しますこの形式でvar data = { seats_booked: [ 'B2', 'B5', 'A20' ] };

私はこれを行う方法を知っています。クエリ文字列でPHPを使用して変数を取得できるためです。

私の質問がはっきりしており、助けになることを願っています。前もって感謝します。

ここコードである:

<?php 
$str = $_SERVER['QUERY_STRING']; 
parse_str($str); 
echo $seats_booked[0]; 
?> 
<!doctype html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Untitled Document</title> 
    </head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
    <body> 
    <ul> 
     <li id="getthis">list</li> 
    </ul> 
    <select id="first" name="first"> 
     <option value="10">First</option> 
     <option value="11">Second</option> 
     <option value="12">Third</option> 
     <option value="13">Forth></option> 
    </select> 
    <ul> 
     <li id="list1">B2</li> 
     <li id="list2">B5</li> 
     <li id="list3">A20</li> 
    </ul> 
    <button id="next" name="next">Next Step</button> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
     $("#next").click(function() { 
      var data = { seats_booked: [ 'B2', 'B5', 'A20' ] }; 
      var result = $.param(data); 
      var first = $('#first').val();        
      var getthis = document.getElementById("getthis").innerHTML; 
      window.location = '?first='+first+'&getthis='+getthis+'&result='+result; 
     }); 
     }); 
    </script> 
    </body> 
</html> 
+0

ようないくつかのループでそれを行うことができ、

var data = { seats_booked: [] }; data.seats_booked.push(document.getElementById("list1").innerHTML); data.seats_booked.push(document.getElementById("list2").innerHTML); data.seats_booked.push(document.getElementById("list3").innerHTML); 

OFCをCONSOLE.LOGするために、任意の具体的な理由をwindow.locationのを変更しましたなぜあなたは '

'タグでそれらをラップしていませんか? – choz

+0

カンマ区切りの値として複数の値を渡すことができます。 ?seats_booked = B2、B5、A20。この結果をsplitで解析してください。 – anomepani

+2

@anomepani - しかし、なぜPHPに配列として複数の値を表現する組み込みの方法( '[]')があり、jQueryにその形式のデータを生成する機能があるのですか? – Quentin

答えて

0

あなたはこのようにそれを行うことができます

<ul class="seats_booked"> 
<li id="list1">B2</li> 
<li id="list2">B5</li> 
<li id="list3">A20</li> 
</ul> 
var seats_booked = []; 
$("ul.seats_booked li").each(function() { seats_booked.push($(this).text()) }); 
var data = {}; 
data["seats_booked"]=seats_booked; 
+0

返事ありがとうございましたあなたのメソッドを使用しているときに私は '&results = B2、B5、A20'を取得する方法がありますこの結果を得る方法はありますか?&seats_booked [] = B2&seats_booked [] = B5&seats_booked [] = A20' – Muya

+0

コード作業ここの例のリンクhttps://jsfiddle.net/pyz19zjc/1/ –

+0

ありがとう、ロミオ・セシ、それは働いた。 – Muya

1

jQuery.paramは、クエリ文字列に使用される形式にデータ構造を変換します。全体のクエリ文字列。クエリ文字列*のビットではありません。

すべてのデータをクエリ文字列に入れてから、paramを使用します。

var result = { seats_booked: [ 'B2', 'B5', 'A20' ] }; 
var first = $('#first').val();       
var getthis = document.getElementById("getthis").innerHTML; 

var data = { 
    result: result, 
    first: first, 
    getthis: getthis 
}; 

var query = jQuery.param(data); 

window.location = "?" + query; 

*自分でそれらを結合することができますので、より正確には、それは、クエリ文字列に適したキー=値のペアのセットに変換します。あなたの問題は、キー=値のペアを取ってから、それらを単一のクエリ文字列値として使用しようとしていることです。しかし、あなたはまた、データの残りの部分を適切にエンコードすることに失敗しており、全体としてparamを使用すると、はるかにクリーンでメンテナンスが容易になります。

0

あなたはこのような何かを意味しましたか? https://jsfiddle.net/5p6k11ny/ は、私が唯一、あなたがPHPに値を送信する場合は、あなたが

"list" + i 
関連する問題