0

我的结果如下。(标识和价值)

{"5702":"7am - 10am","5703":"10am - 1pm","5704":"12pm - 3pm","5705":"3pm - 6pm","5706":"6pm - 9pm" ,"5707":"7pm - 10pm","5708":"9pm - 12am","5709":"12am - 7am","5730":"AZRAAR 123"}

这被采取如下。

JSON.stringify(<?php echo $timeWindowJson ?>)

现在我有这个附加虚拟下拉。

var array = selectedDates.split(",");
      var dynamicTable = "<table id='tbl_dynamic_call_dates'><tr><td>Appointment date</td><td>Client time window</td>";
      $.each(array, function(i) {
         dynamicTable += "<tr><td>" + array[i] + "</td><td>" + "<select><option value='volvo'>7am - 10am</option></select>" + "</td></tr>";
      });
      dynamicTable += "</table>";
      $("#div_outgoing_call_dates_rows").append(dynamicTable);

但我希望附加的下拉列表是这样的。

<select name="CSSAtapsClient[gender_type_id]" class="long" id="gender_type_id">
<option value="">- - Select Gender - -</option>
<option value="5702">7am - 10am</option>
<option value="5703">10am - 1pm</option>
<option value="5704">12pm - 3pm</option>

......(直到所有的值都从 json 字符串中添加)

4

3 回答 3

3

稍等一下,您提供的字符串不是 JSON....您可以先更正它...

示例 JSON 字符串应如下所示

[{"id":"1063","dewr_code":"Unknown Division - ML & Psych"},{"id":"1066","dewr_code":"YorkePDGP - Dale"}]

您可以在 AJAX 调用中尝试这样的操作.....

success: function(data) {
            $('#state_id').html('').append('<option value="">- - Select State - -</option>');
            $.each(data, function(i, value) {
               $('#state_id').append('<option value="' + value.id + '">' + value.state + '</option>');
            });
            $('#state_id').trigger('change');
         }
于 2013-09-27T09:55:03.430 回答
1

在您的 HTML 中:

<select id="gender_type_id">
  <option value="">- - Select Gender - -</option>
</select>

在您的 Javascript 中:

$.each(obj, function(key, value) {
  $('#gender_type_id').append('<option value="' + key + '">' + value + '</option>');
});

你称之为数组的东西不是数组。它只是一个具有许多属性的 JS 对象。使用each很好,但是您需要传递键和值而不是元素和索引。

看到它在这里工作

于 2013-09-27T10:11:42.853 回答
1

如果您显示的数据不是正确的 json(因为它看起来不像 json),您可以尝试一下,

var array = selectedDates.replace("{","").replace("}","").split(",");
var selectHTML = "<select><option value=''>--Select--</option>";
$.each(array, function(i,value) {
    selectHTML += "<option value='"+value.split("-")[0]+"'>"+value.split("-")[1]+"</option>";
});
selectHTML += "</select>";
var dynamicTable = "<table id='tbl_dynamic_call_dates'><tr><td>Appointment date</td><td>Client time window</td>";
$.each(array, function(i,value) {
 dynamicTable += "<tr><td>" + value.split("-")[0] + "</td><td>" + selectHTML + "</td></tr>";
});
dynamicTable += "</table>";
$("#div_outgoing_call_dates_rows").append(dynamicTable);

这应该适合你。

于 2013-09-27T10:05:22.220 回答