2017-02-17 72 views
0

我有一个选择下拉,我想要做的是提交表单后提交一个单一的选择数据库字段中的两个值。我的下拉列表中有值A1,A2,A3,它们被输入到db字段A中。我想要做的是当我为A选择A,A1,A2或A3时,则另一个字段B应该得到值B1,B2或B3因此,即当A = A1时,则B = B1,当A = A2时,则B = B2,当A = A3时,则B = B3。 我尝试使用下面的代码来建立,但是当我为A选择A1时,发生了什么,然后A保存/提交表单时,A获取A1但B不会更改值。 如果我再次保存表单而没有对A进行任何更改,那么A = A1并且从它的值更改为B = B1,这是正确的,但只有在保存表单时才会得到正确的值,选择A. 现在,如果我选择A = A2,那么B不会再次更改值,它仍然是B1(B = B1)。如果我选择A = A3然后B变成B2(B = B2)等我认为你有点.....这种方式B是让我们说“后面的选择”..... 这是我的代码:根据选定的值设置输入值,并存储到数据库与PHP

<?php if($this->item->A == 'A1'){ echo ($this->item->A); echo ($this->item->B); ?> 
<select name="A"><option value="A1" selected="selected">A1</option><option value="A2">A2</option><option value="A3">A3</option></select> 
<input type="text" name="B" id="B" style="display:none;" value=B1> 
<?php echo ($this->item->B); } 
elseif($this->item->A == 'A2') { echo ($this->item->A); echo ($this->item->B); ?> 
<select name="A"><option value="A1">A1</option><option value="A2" selected="selected">A2</option><option value="A3">A3</option></select> 
<input type="text" name="B" id="B" style="display:none;" value=B2> 
<?php echo ($this->item->B); } 
elseif($this->item->A == 'A3') { echo ($this->item->A); echo ($this->item->B); ?> 
<select name="A"><option value="A1">A1</option><option value="A2">A2</option><option value="A3" selected="selected">A3</option></select> 
<input type="text" name="B" id="B" style="display:none;" value=B3> 
<?php echo ($this->item->B); } 
else {?> 
<select name="A"><option value="A1">A1</option><option value="A2" >A2</option><option value="A3">A3</option></select> 
<?php } ?> 

问:怎么可能,当我做出的选择对于A:A1,A2或A3则B获得的值B1,B2或B3 accordignly当我保存的形式?即当A = A1时,B = B1,当A = A2时,则B = B2,当A = A3时,则B = B3? 我需要使用JavaScript,jQuery吗? 我不熟悉这些,因为你明白我不是程序员.... 你能告诉我我应该使用的代码。 请帮助.....

回答

0

,你可以做这样的

$('[name=A]').change(function(){ 
$('#B').val($(this).val()); 
}); 
+0

评论是不是扩展讨论;这个对话已经[转移到聊天](http://chat.stackoverflow.com/rooms/136036/discussion-on-answer-by-john-ambrose-set-input-value-depending-on-selected-value) 。 –

0

HTML应该是这样的:

<select name='A'> 
    <option data-input="B1" value='A1'>A1</option> 
    <option data-input="B2" value='A2'>A2</option> 
    <option data-input="B3" value='A3'>A3</option> 
</select> 
<input name='B'> 

包括jQuery的网页标题。并添加以下脚本。

<script> 
     $(document).ready(function() { 
      $('select[name="A"]').change(function() { 
       $('input[name="B"]').val($(this).find(':selected').data('input')); 
      }); 
     }); 
    </script> 

这里是小提琴: https://jsfiddle.net/merqe16e/1/

+0

我在页面上添加了并且您的代码在我的代码下面,但除了一些错误,我进入了铬控制台它没有工作....我可能做错了。你能把整个代码发给我吗?谢谢 – its4yougr

+0

我忘了提及A和B是相同记录的db字段。这是否改变了一切? – its4yougr

+0

我认为jQuery包含在页面标题中。我在内看到这些行: \t 标签....这是Joomla 3后端文件..... – its4yougr

0

我非常感谢你所有.....我终于得到了答案,我的问题,从你的答案正确理解和运用以下解决方案:

<select name='A'> 
    <option data-input="B1" value='A1'>A1</option> 
    <option data-input="B2" value='A2'>A2</option> 
    <option data-input="B3" value='A3'>A3</option> 
</select> 
<input type="number" id="B" name='B'> 

<script> 
    $(document).ready(function() { 
    $('select[name="A"]').change(function() { 
    $('input[name="B"]').val($(this).find(':selected').data('input')); 
    }); 
}); 
</script> 

但我调整它到我的变量,它的作品就像一个魅力! ! ! 我再次非常感谢你