我制作了2个<select>
标签。第二个中显示的值取决于第一个中选择的值。现在我需要帮助做两件事:
HTML:
<form id="form" method="post">
<select id="vehicle" name="vehicle" onchange="select(this.value)">
<option disabled <?php if(isset($vehicle['type']) && $vehicle['type'] == "") echo 'selected'; ?>>Choose option</option>
<option value="cars" <?php if(isset($vehicle['type']) && $vehicle['type'] == "cars") echo 'selected'; ?>>Cars</option>
<option value="trains" <?php if(isset($vehicle['type']) && $vehicle['type'] == "trains") echo 'selected'; ?>>Trains</option>
</select>
<select id="brand" name="brand">
<option data-option="cars">BMW</option>
<option data-option="cars">Tesla</option>
<option data-option="trains">Rajdhani Express</option>
<option data-option="trains">The Flying Scotsman</option>
</select>
<input type="reset" name="reset" value="Reset">
<input type="submit" name="submit" value="Submit">
</form>
使用Javascript:
var vehicle = document.getElementById("vehicle");
var brand = document.getElementById("brand");
var brandOpt = brand.querySelectorAll("option");
function select(val)
{
brand.innerHTML = '';
for(var i = 0 ; i < brandOpt.length ; i++)
{
if(brandOpt[i].dataset.option === val)
{ brand.appendChild(brandOpt[i]); }
}
brand.selectedIndex = "0";
}
select(vehicle.value);
PHP:
$vehicle = array('type' => "", 'brand' => "");
if(isset($_POST['submit']))
{
if(isset($_POST['vehicle']) && isset($_POST['brand']))
{
$vehicle = array('type' => $_POST['vehicle'], 'brand' => $_POST['brand']);
}
}
上面的代码正在做我想做的事情,但不是一切。像:
谢谢!
答案 0 :(得分:0)
以程序方式选择一个选项的Javascript应如下所示。
brand.value = valueToSelect; // select a value
brand.value = ''; // remove selection
&#13;
如果您使用表单提交的整页刷新,则需要以某种方式存储值(cookie,localstorage,url querystring,url hash)并在页面重新加载后收集它。对于这个$ _COOKIE和if条件设置你的phtml可能比整页刷新场景中的javascript更清晰。