【问题标题】:Getting the HTML display and not value in PHP获取 HTML 显示而不是 PHP 中的值
【发布时间】:2015-04-01 02:01:39
【问题描述】:

我有这几行代码。

<select id="select12" name="package">
    <option value="0.00">(Select a Package)</option>
    <option value="149.00">PACKAGE A</option>
    <option value="223.00">PACKAGE B</option>
    <option value="273.00">PACKAGE C</option>
</select>

我想获取“Package A/B/C”及其值。例如,如果用户选择包 A。输出是包 A - $149.00。我将如何做到这一点?到目前为止,这是我实现获取 HTML 的代码,但它并不走运。

$package = $_POST['package'];

$email_message = "Form details below.\n\n";

    function clean_string($string) {

        $bad = array("content-type","bcc:","to:","cc:","href");

        return str_replace($bad,"",$string);

    }
 $email_message .= "Selected Package: ".clean_string($package)."\n";

【问题讨论】:

  • 阅读this
  • 你需要js来做到这一点

标签: php html email post


【解决方案1】:
<script src="jquery.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
       $('#select12').change(function(){
            var this_val=$(this).val();
            if(this_val!='0.00')
            {
                var this_html=$( "#select12 option:selected" ).text();
                $('#result').html(this_html+' - $'+this_val);
            }
       });
    });
</script>


<select id="select12" name="package">
    <option value="0.00">(Select a Package)</option>
    <option value="149.00">PACKAGE A</option>
    <option value="223.00">PACKAGE B</option>
    <option value="273.00">PACKAGE C</option>
</select>

<div id="result"></div>

【讨论】:

    【解决方案2】:

    你能做的最简单的事情是:

    <select id="select12" name="package">
        <option value="0.00">(Select a Package)</option>
        <option value="PACKAGE A - $149.00">PACKAGE A</option>
        <option value="PACKAGE B - $223.00">PACKAGE B</option>
        <option value="PACKAGE C - $273.00">PACKAGE C</option>
    </select>
    

    更新:

    对于整数值,您可以使用:

    preg_match('!\d.+!', $package, $matches);
    print_r($matches[0]);
    

    【讨论】:

    • 我使用数值添加到代码的其他部分,所以我不想这样做......
    • @Darren 因为它将返回一个空格和一个带有数字部分的 $ 符号。然后我们需要修剪它。所以我们最好使用preg_match
    【解决方案3】:

    试试这个:

    $_POST['package'] 将为您提供值(例如 149、223 等)并添加一个隐藏的文本框并通过执行以下操作分配选择文本(例如包 A 等):$( "#select12 option:selected" ).text(); 并发送该数据。

    看看,如果这有帮助。

    【解决方案4】:

    像这样简单地修改你的表单怎么样:

    <select id="select12" name="package">
        <option value="0.00">(Select a Package)</option>
        <option value="PACKAGE A - $149.00">PACKAGE A</option>
        <option value="PACKAGE B - $223.00">PACKAGE B</option>
        <option value="PACKAGE C - $273.00">PACKAGE C</option>
    </select>
    

    【讨论】:

    • 你是复制粘贴另一个答案还是什么?
    • 我为什么要这么做。我们只是在几乎同时发布它。看看时间有多近。
    猜你喜欢
    • 2014-09-20
    • 2012-09-14
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 2016-02-10
    • 2017-12-06
    • 1970-01-01
    • 2011-09-21
    相关资源
    最近更新 更多