我还在从头学习。 我想根据用户如何回复上一条记录来输入文本。
因此,基于他们选择的选项...我想在“状态”记录下输入状态。
换句话说,如果用户在下拉列表中选择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>
答案 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