HTML PHP使用带有IF语句的输入类型?

时间:2017-10-09 19:07:24

标签: javascript php html

我还在从头学习。 我想根据用户如何回复上一条记录来输入文本。

因此,基于他们选择的选项...我想在“状态”记录下输入状态。

换句话说,如果用户在下拉列表中选择2,我希望状态(输入隐藏)填充单词“打开”。 如果用户选择-2,则像“状态”一样填充“已关闭”

到目前为止只有基本的。

<input type="hidden" name="status" value="Open">

我的问题是如何实现我想要实现的目标,因为我迷失了。

目前正在尝试

 $status = $_POST['status'];
 $result = $_POST['result'];
$result = $_POST['result'] ?? 0;
        $statuses = [
        '-3' => 'Closed',
        '-2' => 'Closed',
        '1' => 'Open',
        '2' => 'Big',
        '3' => 'Bigger',
          ];
          $status = $statuses[$result];

在我的PHP部分上面我的查询..     

              <select name="result">
                  <option value="-3">-3</option>
                  <option value="-2">-2</option> 
                  <option value="-1">-1</option>
                  <option value="1">1</option>  
                  <option value="2">2</option>
                  <option value="3">3</option>  
                </select>

2 个答案:

答案 0 :(得分:0)

您可以使用PHP或JS。

更新您的HTML以使其具有值,例如:

<select name="result">
  <option value="-3">-3</option>

PHP

用户选择result并提交表单。然后:

<?php
$result = $_POST['result'] ?? 0;
$statuses = [
    ...
    '-2' => 'Closed',
    '2' => 'Open',
];
$status = $statuses[$result];
// and save to Database

JS / jQuery的

$(document).on('change', 'input[name=result]', function(){
    var val = $(this).val();
    if (val == -2){
        $('input[name=status]').val('Closed');
    }
    if (val == 2){
        $('input[name=status]').val('Open');
    }
});

答案 1 :(得分:0)

也许我没有正确理解这个问题,但我相信使用Javascript比用PHP更好。原因是因为PHP是服务器端语言,所以在更改输入之前必须提交表单(除非您使用的是AJAX,它将是PHP和Javascript的组合)。

Javascript是一种客户端语言,可以满足您的需求。使用jQuery:

$("select[name='result']").on('change', function() {
    var chosenOption = $("select[name='result'] option:selected").text();
    var newText = (chosenOption < 0) ? "Closed" : "Open";
    $("input[name='status']").val(newText);
});

如果你想看看它是如何工作的,这是一个JSFiddle的链接: https://11.22.33.444