2017-10-09 63 views
-4

我仍然从头学习。 我想根据用户如何回答上一条记录来输入文字。HTML PHP使用带有IF语句的输入类型?

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

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

到目前为止只有基本的。

<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> 
+0

什么是你的问题? –

+0

[根据下拉选择从数据库填充另一个选择下拉列表]的可能重复(https://stackoverflow.com/questions/11636293/populate-another-select-dropdown-from-database-based-on-dropdown-selection) –

+0

更新它。 任何帮助将有所帮助! – CarlosDanger

回答

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'); 
    } 
}); 
+0

太棒了!让我快速测试! – CarlosDanger

+0

好吧,我有_____ $ status = $ _POST ['status']; ____和____ $ result = $ _POST ['result']; ________我有INSERT INTO查询,状态将进入$状态,并且结果将进入$ result ...结果与我上面的选项声明一起工作良好。 – CarlosDanger

+0

好吧,我更新了我的原始帖子,显然我很乱。 。我不应该在我的html部分再次做PHP? – CarlosDanger

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://jsfiddle.net/turtlechief/b0z2fyfx/