Как вернуть несколько значений в JavaScript

0

Привет, я новичок в javascript. Мне нужно вернуть несколько значений из таблицы. В настоящее время jscript возвращает только первое значение из таблицы.

Мой javascript

<script>
jQuery(document).ready(function($){
    $("#countryDropDown").change(function()
    {
        var country=$(this).val();
        function fillStateDropDown(countryStateOption)
        {
            $.each(countryStateOption, function(val, text) {
                $('#stateDropDown').append(
                $('<option></option>').val(val).html(text));
            });
        }
        function clearStateDropDown()
        {
            $('#stateDropDown option:gt(0)').remove();
        }
        if(country=='Art1')
        {
            clearStateDropDown();
            var indiaStateOption={
                '<?=$row['service']?>' : '<?=$row['service']?>',
            };
            fillStateDropDown(indiaStateOption);
        }

PHP-код

<?php
    $select=mysql_query("select * from service where status=1") or die(mysql_error());
    while($row=mysql_fetch_array($select)){
?>

Значения таблиц

A | b | v | v |

В настоящее время возвращается первое значение A, но мне нужно распечатать все значения. благодаря

  • 2
    Javascript позволяет вам только вернуть 1 значение, однако это значение может быть массивом, который содержит все ваши результаты
  • 0
    Действительно, я не знаю язык программирования, который позволяет возвращать более одного значения из функции.
Показать ещё 1 комментарий
Теги:

4 ответа

0

вернуть объект.

var result = {};
result.a=20;
result.x='ABC';
return result;

то вы можете получить доступ к свойствам возвращаемого объекта следующим образом:

alert(result.x);
alert(result.a);
0

Вы можете легко использовать объекты JSON возвращать несколько объектов в javascript. Верните объект JSON из файла сценария.js и получите соответствующие значения в javascript с помощью jquery.

0

Вы пытаетесь вывести параметры в элементе select html на основе результатов запроса php?

Во-первых, вот грубый макет того, что я думаю, вы пытаетесь сделать http://jsfiddle.net/Lj4rqkpy/

<body>
<select id="countryDropDown">
<option value="Art1">this shows first</option>
<option value="Art1">select me to trigger on change</option>
</select>

<select id="stateDropDown">
<option value="">This will be cleared</option>
</select>
</body>

jQuery(document).ready(function($)
{
    $("#countryDropDown").change(function()
    {
        var country = $(this).val();

        function fillStateDropDown(countryStateOption)
        {
            $.each(countryStateOption, function(val, text)
            {
                $('#stateDropDown').append(
                    $('<option></option>').val(val).html(text)
                );
            });
        }
        function clearStateDropDown()
        {
            $('#stateDropDown').html('');
        }

        if(country == 'Art1')
        {
            clearStateDropDown();
            var indiaStateOption = {
                'testService' : 'testService', 'testService2' : 'testService2'
            };
            fillStateDropDown(indiaStateOption);
        }
    });

    // 
});

Предполагая, что запрос возвращает несколько строк, и вы хотите, чтобы они были выведены внутри объекта indiaStateOption в вашем javascript, вы можете использовать

<?php
    $serviceJSOutput = '';
    $select=mysql_query("select * from service where status=1") or die(mysql_error());
    while($row=mysql_fetch_array($select)){
        $serviceJSOutput .= "'" . $row['service'] . "' : '" . $row['service'] . "',";
    }
    // remove the last comma
    $serviceJSOutput = rtrim($serviceJSOutput, ",");
?>

а затем в js заменить оператор if с помощью

if(country == 'Art1')
{
    clearStateDropDown();
    var indiaStateOption = {
         <?=$serviceJSOutput?>
    };
    fillStateDropDown(indiaStateOption);
}

В качестве альтернативы я бы рекомендовал вам отказаться от использования mysql_query в вашем php, если это возможно, оно обесценивается. Используйте PDO или mysqli.

Мой ответ заполнен предположениями, и я не успел его полностью протестировать, поэтому, пожалуйста, поправьте меня, где я ошибаюсь.

  • 0
    Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его постом - вы всегда можете комментировать свои собственные посты, и, когда у вас будет достаточно репутации, вы сможете комментировать любые посты .
  • 0
    Я попытался прочитать код и получить лучшее понимание того, что им нужно. По общему признанию, я мог бы быть далеко от цели, но я думаю, что это значительно лучше, чем мой предыдущий ответ.
0

Вы можете легко вернуть массив или объект с именованными ключами, синтаксис синтаксиса javascript делает его очень легким.

Пример массива:

return [value1, value2, finalValue];

Пример объекта:

return {
    value1Name: value1,
    value2Name: value2,
    finalValueName: finalValue
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню