【问题标题】:Get hidden input value from database after select form选择表单后从数据库中获取隐藏的输入值
【发布时间】:2013-11-25 01:57:28
【问题描述】:

我有一个从数据库retailer_id 获取选项的选择输入,我需要它,当管理员在此选择输入上选择一个零售商时,我将使用retailer_slug 获得一个新的,然后,当管理员创建或更新,将发送到数据库的retailer_id 和retailer_slug 隐藏输入。我的代码是:

已编辑

        <select class="textbox2" id="retailer_id" name="retailer_id">
<option value="">--- Please select store ---</option>
<?php
    $sql_retailers = smart_mysql_query("SELECT * FROM cashbackengine_retailers WHERE status='active' ORDER BY title ASC");
    while ($row_retailers = mysql_fetch_array($sql_retailers))
    {
        if ($retailer_id == $row_retailers['retailer_id']) $selected = " selected=\"selected\""; else $selected = "";
        echo "<option data-slug=\"".$row_retailers['slug_title']."\" value=\"".$row_retailers['retailer_id']."\"".$selected.">".$row_retailers['title']."</option>";
    }
?>
</select>

<input type="text" name="slug" id="slug" value=""/>
         <script type="text/javascript">
        $(document).ready(function() {
        $('#retailer_id').on('change', function() {
var $selected = $('#retailer_id option:selected');
$('input[name=slug]').val($selected.data('slug'));
});
});
        </script>

【问题讨论】:

  • 那么,retailer_slug 在同一张表中(cashbackengine_retailers)?
  • 是的,同一张表,只是不同的列。所以,当用户选择一个零售商时,我需要抓住隐藏输入的retailer_slug,然后点击保存,将隐藏的输入与retailer_id一起发送

标签: javascript php jquery mysql


【解决方案1】:

如果我理解正确,这是你可以做的一件事:

PHP

<select class="textbox2" id="retailer_id" name="retailer_id">
    <option value="">--- Please select store ---</option>
    <?php
        $sql_retailers = smart_mysql_query("SELECT * FROM cashbackengine_retailers WHERE status='active' ORDER BY title ASC");
        while ($row_retailers = mysql_fetch_array($sql_retailers))
        {
            if ($retailer_id == $row_retailers['retailer_id']) $selected = " selected=\"selected\""; else $selected = "";
            echo "<option data-slug=\"".$row_retailers['retail_slug']."\" value=\"".$row_retailers['retailer_id']."\"".$selected.">".$row_retailers['title']."</option>";
        }
    ?>
</select>
<input type="hidden" name="retailer_slug"/>

jQuery

$('#retailer_id').on('change', function() {
    var $selected = $('#retailer_id option:selected');
    $('input[name=retailer_slug]').val($selected.data('slug'));
});

所以基本上,这里的想法是将retailer_slug 值保存为每个&lt;option&gt;data- 属性。然后在更改所选选项时,将复制retailer_slug 987654326 @ value达到隐藏的输入。

【讨论】:

  • 我现在测试一下,看看能不能解决问题,我会联系,谢谢:)
  • 让我问一下,我如何测试页面上的输出以检查隐藏的输入是否填充了蛞蝓?
  • 如果您有 Chrome 或 Firefox,您可以右键单击使用“检查元素”。或者您可以将输入 type 更改为 text 然后它就会可见。
  • 刚刚做了并返回了那个错误:Uncaught TypeError: Object # has no method 'on'
  • 好的,改成 $('#retailer_id').change(function() { var $selected = $('#retailer_id option:selected'); $('input[name=slug_title] ').val($selected.data('slug')); });但仍然不返回 slug 值,我做错了什么?
猜你喜欢
  • 2015-10-19
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 2017-04-04
  • 1970-01-01
相关资源
最近更新 更多