如何在javascript中返回多个值

时间:2015-01-28 12:48:52

标签: javascript php

您好我是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 code

<?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但我需要打印所有值。 感谢

4 个答案:

答案 0 :(得分:0)

您是否正在尝试根据php查询的结果在select html元素中输出选项?

首先,这是我认为你要做的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);
        }
    });

    // 
});

假设查询返回多行,并且您希望它们在javascript中的indiaStateOption对象内输出,则可以使用

<?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);
}

顺便说一下,如果可能的话,我建议你不要在你的php中使用mysql_query,它会被折旧。使用PDO或mysqli。

我的答案充满了假设,我没有时间对它进行全面测试,所以请在我错误的地方纠正我。

答案 1 :(得分:0)

您可以轻松地使用JSON对象在javascript中返回多个对象。从.js脚本文件返回一个JSON对象,并使用jquery在javascript中检索相应的值。

答案 2 :(得分:0)

返回一个对象。

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

然后您可以访问返回的对象属性,如下所示:

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

答案 3 :(得分:0)

您可以使用命名键轻松返回数组或对象,javascript的内联创建语法使其变得非常简单。

数组示例:

return [value1, value2, finalValue];

对象示例:

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