我做了一个引用另一个的表单,然后返回variable
。我会使用此变量默认选择<option>
ID
(或名称)与我在第二种表单中放入的<select>
标记中的<option value="option2" selected>Option2</option>
相同。
例如,如果 form_1 返回 type_option = option2 ,我想放<?php
echo '<form id="form_1"><input type="hidden" name="type_option" value="option1"><br>';
echo '<input type="submit" value="Submit"></form>';
if (isset($_POST['type_option']))
{
echo '<form id="form_2">';
echo '<script>$(\'select[name="options"]\').find(\'option[value="'.$type_option.'"]\').attr("selected",true);</script>';
echo '<select id="type" name="type">';
echo '<option value="option1">Option1</option>';
echo '<option value="option2">Option2</option>';
echo '</select>';
echo '</form>';
}
?>
。
我想我必须使用javascript,但我对此一无所知。
我尝试使用此代码,但它无法正常工作。
{{1}}
感谢您的帮助。
答案 0 :(得分:0)
您应该在表单后回显脚本。我也改变了脚本。尝试一下,让我知道发生了什么。
<?php
echo '<form method="post"><input type="hidden" name="type_option" value="option1"><br>';
echo '<input type="submit" value="Submit"></form>';
if (isset($_POST['type_option']))
{
$type_option = $_POST['type_option'];
echo '<form method="post">';
echo '<select id="type" name="type">';
echo '<option value="option1">Option1</option>';
echo '<option value="option2">Option2</option>';
echo '</select>';
echo '</form>';
echo "<script> $(function(){ $('#type').val('$type_option'); })</script>";
}
?>
答案 1 :(得分:0)
好的,既然我们已经确认您正在使用jQuery,那么jQuery.val
就是您从下拉列表中选择选项的朋友。
以下是您的示例,其中重构了一些PHP代码,因此您不必转义尽可能多的引号:
<form method="post" id="form_1"><input type="hidden" name="type_option" value="option1"><br>
<input type="submit" value="Submit"></form>
<?php
if (isset($_REQUEST['type_option']))
{
$type_option = $_REQUEST['type_option'];
?>
<form id="form_2" method="post">
<script>
$(document).ready(function () {
$('select[name="options"]').val("<?= $type_option ?>");
});
</script>
<select id="type" name="options">'
<option value="option1">Option1</option>
<option value="option2">Option2</option>
</select>
</form>
<?php
}
?>
name
元素的<option>
属性与您的jQuery选择器$('select[name="options"]')
匹配。$_REQUEST
而不是$_POST
,因为前者从查询字符串(GET请求)捕获请求变量并发布数据(POST请求)。method="post"
添加到第一个<form
&gt;因为您的示例需要POST请求。 (如果您使用$_REQUEST
代替$_POST
,则实际上没有必要这样做。)$(document).ready()
确保您的JavaScript选择代码在浏览器实际创建下拉元素时执行。答案 2 :(得分:0)
以下代码适合您。
<?php
echo '<form id="form_1"><input type="hidden" name="type_option" value="option1"><br>';
echo '<input type="submit" value="Submit"></form>';
if (isset($_REQUEST['type_option']))
{
echo '<form id="form_2">';
echo '<select id="type" name="type">';
echo '<option value="option1">Option1</option>';
echo '<option value="option2">Option2</option>';
echo '</select>';
echo '</form>';
?>
<script type="text/javascript">
$(document).ready(function($) {
$('select[name="type"] option[value="<?php echo $type_option ?>"]').attr("selected","selected");
});
</script>
<?php
}
?>
确保在脚本之前必须加载jQuery!
答案 3 :(得分:-1)
通过js选择任何元素,您可以使用document.getElementById。 例如 - :
<body>
<script>
function addRow()
{
var tbl = document.getElementById('table1');
var lastRow = tbl.rows.length;
var iteration = lastRow - 1;
var row = tbl.insertRow(lastRow);
var firstCell = row.insertCell(0);
var el = document.createElement('input');
el.type = 'number';
el.name = 'roomno' + i;
el.id = 'roomno' + i;
el.size = 1;
el.maxlength = 1;
firstCell.appendChild(el);
}
</script>
<table id="table1">
<tr> </tr>
</table>
<input type="button" value="Add Room" onclick="addRow();" style="background-color:#0CC; height:60px; width:90px"/>
</body>
上面的脚本通过js选择id table1的表,并添加一个带有textbox的行。