jQuery Mobile:根据列表中的选择更新MySQL表中的输入

时间:2013-04-14 16:40:10

标签: php jquery mysql jquery-mobile

我正在编写一个jQuery移动页面(使用PHP),它填充了一个select元素,它的选项标签带有来自MySQL数据库中表格的“items”(该表包含id,items,cost)。使用常用的mysql_query和mysql_fetch_assoc方法来回显选项,这很好用。剥离裸代码:

<?php
    $itemQuery = mysql_query("SELECT shortDesc FROM `items` ORDER BY shortDesc");
?>
<label for="item" class="select">Item:</label>
    <select name="item" id="item" data-native-menu="false">
        <option>Select Item:</option>            
        <?php
            while($temp = mysql_fetch_assoc($itemQuery))
            {
                echo "<option value='".$temp['shortDesc']."'>".$temp['shortDesc']."</option>";
            }
        ?>
    </select>

然而,当用户从列表中选择一个项目时,我希望能够使用MySQL表中的实际项目成本更新名为“cost”的输入元素,并且我不确定该怎么做使用jQuery / PHP / MySQL。成本输入字段:

<label for="cost">Cost:</label>
<input type="text" name="cost" id="cost" value="" placeholder="Cost (£)"/>

我也不确定我们是否可以从$ itemQuery中已经返回的结果中获得成本值(通过将SELECT更改为shortDesc,cost)来保存另一个数据库查询,或者我们是否必须再次查询数据库执行用户选择= shortDesc的选择。

我怀疑有不同的形式,这是开发人员的共同要求;基本上根据用户的选择/交互从数据库中获取一些信息。我在谷歌上搜索并在这里搜索过,但我不确定我是否使用正确的搜索字词来查找我怀疑在其他地方已经回答的内容!

一如既往地非常感谢。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

1)循环查询结果并编写选项和一些javascript(我使用关联数组)

<?php
    $result = mysql_query("SELECT shortDesc,costs FROM items ORDER BY shortDesc");
    $options = '';
            $javascript = ''; 
    while ($row = mysql_fetch_assoc($result))
    {
        $options .= '<option value="'.$row['shortDesc'].'">'.$row['shortDesc'].'</option>';
        $javascript .= '\''.$row['shortDesc'].'\' : \''.$row['costs'].'\',';
    }
?>

2)编写你的html和javascript:

<select id="yourselect">
    <option>select</option>
<?=$options?>
</select>

<label for="cost">Cost:</label>
<input type="text" name="cost" id="cost" value="" placeholder="Cost (£)"/>

3)编写一些javascript来更新输入字段:

<script>
    var costs = {<?=$javascript?>};

    $(function() {
    $('#yourselect').change(function() {

    cost = costs[$('#yourselect').val()];

    $('#cost').val(cost);


    });
    });

</script>