首页 文章

使用PHP / MySQL形式的动态数据显示

提问于
浏览
-1

好的,为了正确地提出问题,我需要简要介绍一下我想要实现的目标 . 所以请耐心等待 .

我有一个表单,显示一个从MySQL数据库中获取数据的下拉菜单 .

drop dpwn menu that fetches mysql data http://img690.imageshack.us/img690/5378/59790538.png

我的MySQL表看起来像这样:

mysql table http://img841.imageshack.us/img841/2023/58196854.png

我用来执行此操作的(垃圾)代码如下:

<div class="rowElem">
<label for="service_name"><b>Particulars</b></label>
<?php 
            $sql1 = "select * from `service_tbl`";
            $query_result = mysql_query($sql1);

        echo "<select id='service_name' name='service_name'>";
        while( $row = mysql_fetch_array( $query_result ) ) {
            echo "<option value='".$row['id_service']."' >".$row['service_name']."</option>";
            $service_price = $row['service_price'];
        }
        echo "</select>";
        ?>
</div>

<div class="rowElem">
        <label for='service_price'><b>Price</b></label>
        <input type='text' id='service_price' name='service_price' value="<?php echo $service_price; ?>" />
</div>

代码正在做它应该做的事情:

output http://img94.imageshack.us/img94/6341/67345604.png

无论我选择哪个项目,在表单的 Price 字段中,我都会获得在while循环结束时获取的值 800 . 根据代码,这是预期的行为 .

但我的目标不是由此服务 . 我想要的是,从下拉菜单中选择一个项目,并在表单的 Price 字段中显示它的相应价格值 . 我怎么做?我知道我的MySQL查询已被弃用,我应该使用 PDOMySQLi 方法 . 但这不是我现在主要担心的问题 . 任何建议将受到高度赞赏 .

4 回答

  • 0

    改变这一行:

    echo "<select id='service_name' name='service_name' onChange=\"document.getElementyById('service_price').value = this.value\">";
    

    并删除此: value="<?php echo $service_price; ?>"

  • 0

    它显示800.00的价格,因为这是它从查询中获得的最后一个值 . 您可以通过基于所选服务名称运行第二个查询来完成所需的操作 .

    $sql2 = " select service_price from service_tbl where id_service= $row['id_service']";
    

    您需要将此作为onchange事件执行,以便它知道从下拉列表中选择了哪个值 .

  • 0

    假设您生成了这样的输出:

    <select id="service_name">
      <option value="1" data-price="80">Service #1</option>
      <option value="2" data-price="90">Service #2</option>
      ...
      <option value="n" data-price="100">Service #n</option>
    </select>
    
    <div id="price"></div>
    

    你可以用一个小jQuery做到这一点:

    $(function(){
    
      var $priceDiv = $('#price');
    
      $('#service_name').change(function(){
    
        $priceDiv.html(
    
          $(this).children('option[value="' + $(this).val() + '"]').data('price');
    
        );
    
      });
    
    });
    
  • 0

    目前还不清楚你在这里要求什么 . 据我所知,您希望在选择项目时更改价格字段中的价格 . 如果是这种情况,您需要使用javascript或jQuery .

    这是jQuery的解决方案:

    这样的东西会起作用:

    $(document).ready(function(){
        $(document).on('change','#service_name',function(){
            $('#service_price').val(function(){
                return $(this).children('option[value="' + $(this).val() + '"]').data('price');
            });
        });
    });
    

    Furthermore, I must strongly advise you to move away from using the PHP mysql_ API as it has now been deprecated! Instead, use either PDO or mysqli, information for both can be found at the links below:*

相关问题