0

所以,我有一个非常糟糕的数据库,我无法转换。

该字符串是 5 个数字,例如:180,2345,123,5643,23534

我需要将这些数字(需要以某种方式爆炸)放在这样的选择选项中:

<select name="hotel" id="hotel" class="fieldbackend">
<option value="403">403</option>
<option value="880">880</option>
<option value="983">983</option>
<option value="648">648</option>
</select>

目前我得到了这个结果:

<select name="hotel" id="hotel" class="fieldbackend">
<option value="undefined">undefined</option>
<option value="undefined">undefined</option>
<option value="undefined">undefined</option>
<option value="undefined">undefined</option>
<option value="403,880,983,648">403,880,983,648</option>
</select>

有我的源代码:

<select class="fieldbackend" id="destination" name="destination">
     <option value="">-- Destination --</option>
</select>

<select class="fieldbackend" id="hotel" name="hotel">
     <option value="">-- Hôtel --</option>
</select>

有我的JS:

$(function(){
    $('#destination').change(function(){
        $.getJSON('/dev/select2.php', {'destination': $(this).val()}, function(data) {
            var items = '';
            $.each(data, function(key, val) {
                items += '<option value="' + val['deHotels'] + '">' + val['deHotels'] + '</option>';
            });

        $('#hotel').html(items);
        });
    });
})

最后是我的php代码:

$requete = "SELECT DISTINCT deHotels FROM sirev_Dests WHERE deDestName = '". $_GET['destination'] ."' ORDER BY deDestName";
    $connect = mysql_connect("&&&&&&&&&&&&&&&","&&&&&&&&&&&&&&&","&&&&&&&&&&&&&&&");

    mysql_select_db("&&&&&&&&&&&&&&&", $connect);

    $res = mysql_query($requete) or die(mysql_error());
    while ($row = mysql_fetch_assoc($res, true)) {
        $items = explode(',',$row['deHotels']);
        array_push($items, $row);
    }
die(json_encode($items));

结果有一个屏幕:http: //nsa29.casimages.com/img/2012/06/01/120601072406136633.jpg

对不起我的英语,我来自魁北克市。

任何人都可以帮我弄清楚吗?

4

2 回答 2

0

试试这个:

while ($row = mysql_fetch_assoc($res, true)) {
  array_push($items, $row['deHotels']);
}
于 2012-06-01T18:10:06.803 回答
0

您的 PHP 代码应如下所示:

$res = mysql_query($requete) or die(mysql_error());
if ($res) {
    $row = mysql_fetch_row($res);
    $items = explode(',', $row);
    die(json_encode($items));
}

由于您只从数据库中选择 1 行,因此无需循环查询结果。并用于explode()将字符串'180,2345,...'转换为array('180','2345',...).

在你的 js 中,替换val['deHotels']val

$.each(data, function(key, val) {
   items += '<option value="' + val + '">' + val + '</option>';
});
于 2012-06-01T18:12:02.747 回答