0

ドロップダウンメニューをサイトに追加するボタンがあり、ドロップダウン値属性内に数字があります。私はajax関数を使用して、ドロップダウンの値を使用して数式を実行しています。これが私のコードです。

var data1 = $('#data1').val();
var data2 = $('#data2').val();
var data3 = $('#data3').val();


$.ajax({
  type: 'GET',
  url: 'ajaxcalc.php',
  data: {
    data1: data1,
    data2: data2,
    data3: data3
   },
  dataType: 'json',
  cache: false,
  success: function(data) { alert('yay!'); })
   });
  },
 });

//show dropdowns code
$('#data1').click(function() {
var $d = $('<select name="data1" id="data1"><option selected="selected" value="null">Choose your data!</option><option value="5">Option 1</option><option value="1">Option 2</option><option value="14">Option 3</option></select><br/>').fadeIn().delay(1000);
$('.data1').append($d);
});

//html button code for append data1 drop down
<button id="data1">Add Dropdown</button>

私の問題は、同じIDで同じドロップダウンを2つ追加し、両方の変数を取得できない場合に発生します...最初のドロップダウン値のみを取得します。

私のajaxcalc.phpファイルには、変数を取得するためにこれがあります。

$data1 = $_GET['data1'];
$data2 = $_GET['data2'];

誰かがdata1ドロップダウンを2回追加し、2つの異なる値を選択できるようにしようとしていますが、それでも.ajax()関数を介してそれらの値をajaxcalc.phpファイルに渡します!誰かが私がこれを達成する方法を知っていますか?

4

1 に答える 1

1

あなたの場合id、「data2」または「data3」はありません。「data1」を追加し続けます。ドロップダウンを追加するときは、IDを使用して番号をインクリメントする必要があります。

//show dropdowns code
var dropdownCount = 1;
$('#data1').click(function() {
    var $d = $('<select name="data' + dropdownCount + '" id="' + dropdownCount + '"><option selected="selected"          value="null">Choose your data!</option><option value="5">Option 1</option><option value="1">Option 2</option><option value="14">Option 3</option></select><br/>').fadeIn().delay(1000);
    $('.data1').append($d);
});

ドロップダウンコードの代わりにそのコードを使用してみてください。

編集

より良い解決策は、idsの代わりにクラスを使用することです。各ドロップダウンにが含まれているclass場合は、それらすべてを選択し(追加された数に関係なく)、それらをループして値を取得できます。

var dropdowns = $(".dropdowns");
//Loop through them to get values and pass them to your ajax call

EDIT2

これは、複数のドロップダウンを追加して、個々の変数ではなく配列をPHPページに戻す方法を一緒に示したフィドルです。

http://jsfiddle.net/JtUuN/

于 2012-08-03T02:36:39.807 に答える