如何将下拉选择从字符串转换为布尔值

时间:2019-01-10 15:40:22

标签: php html

尝试将下拉选择转换为布尔值。我已经在这里搜索并尝试了多种方法。什么都没用。有人可以协助您进行最佳实践吗?这是到目前为止我尝试过的两个示例。

更新:为响应正确答案而做出的更正,如下:“您在选择中也有两个名称。”一旦我消除了第二个名字,一切都会正常运行。

HTML:


    <input type="hidden" name="cmd" value="_s-xclick">
    <input type="hidden" name="hosted_button_id" value="paypalvalue">
    <table>
    <tr><td><input type="hidden" name="on0" value="ODS Categories">ODS                     
    Categories</td></tr><tr><td>
    <select required name="os0" name ="catSelect" id="catSelect" onchange="" 
    class="form-control"><option value="">Select One:</option>
    <option value="M" name="mcategory" id="mcategory" onclick="" />M : 
    </option>
    <option value="P" name="pcategory" id="pcategory" onclick="" />P : 
    </option>
    <option value="E" name="ecategory" id="ecategory" onclick="" />E :     
    </option>
    <option value="C" name="ccategory" id="ccategory" onclick="" />C : 
    </option>
    <option value="O " name="ocategory" id="ocategory"  onclick="" />O : 
    </option>
    </select> </td></tr>
    </table><small>(OPTIONAL: Fill out <i>YOUR</i> user name for selected 
    platform, below.)</small>
    <input type="hidden" name="currency_code" value="USD">

这是我尝试过的java / jquery :(什么都没有进入数据库)


    $(document).ready(function(){
    $('#catSelect').on('change', function() {
      if ( this.value == 'M')
      {
      $("#mcategory").val() == '1';
      $("#pcategory").val() == '0';
      $("#ecategory").val() == '0';
      $("#ccategory").val() == '0';
      $("#ocategory").val() == '0';
      }
    else
    {
        $("#matchcategory").val() = 0;
      }
      });
    });
    //and so on for each

这是我尝试过的php :(无论选择什么,一切都以0进入数据库) 更新:我发布了原始问题未使用的错误代码。这已更新为实际使用的代码,并且功能正常。


        if ($catSelect == 'M') {
        $mcategory = "1";
    }
    else {
        $mcategory = "0";
    }
    if ($catSelect == 'P') {
        $pcategory = "1";
    }
    else {
        $pcategory = "0";
    }
    if ($catSelect == 'E') {
        $ecategory = "1";
    }
    else {
        $ecategory = "0";
    }
    if ($catSelect == 'C') {
        $ccategory = "1";
    }
    else {
        $ccategory = "0";
    }
    if ($catSelect == 'O') {
        $ocategory = "1";
    }
    else {
        $ocategory = "0";
    }

任何帮助将不胜感激。另外,如果您可以提供详细信息,因为我还是编程新手。我究竟做错了什么?预先感谢您的协助!

1 个答案:

答案 0 :(得分:2)

JavaScript不是Java


我并没有做太多的PHP,但是这种构造似乎是一厢情愿的

$_POST["mcategory".selected] 

我不希望如此,而是

$cs = $_POST["catSelect"];
$mcategory = $cs == "M"; // boolean - same as $mcategory = $cs == "M" ? 1 : 0;

例如


选项也没有名称,ID或事件处理程序(如onclick),并且您过早关闭了开始选项标签


您在选择中也有两个名字


这是无效的jQuery

$("#mcategory").val() == '1';

但是

$("#catSelect").val("M")  

将选择第一个选项


您想要这样的东西:

<select required name="catSelect" id="catSelect" class="form-control">
    <option value="">Select One:</option>
    <option value="M">M :  </option>
    <option value="P">P : </option>
    <option value="E">E : </option>
    <option value="C">C : </option>
    <option value="O">O : </option>
</select>

使用类似

$catSelect = strtolower ($_POST["catSelect"]); // get the selected option value
foreach (str_split("mpeco") as $char) { // available options
  ${$catSelect."category"} = $char==$catSelect; // set each variable except selected to false
}