我在PHP/HTML页面上有一个下拉列表。我在它旁边有一个按钮,单击它会打开一个弹出窗口,通过这个窗口,我可以向下拉列表中添加更多项(它存储在mysql表中)。当我关闭弹出窗口时,它将触发一个事件,该事件将刷新父页上的下拉列表。
怎么做?谢谢!
编辑:页面上有两个下拉列表。第二个DDL中的选项列表取决于第一个DDL中所做的选择。在第二个DDL旁边,有一个按钮可以打开一个弹出窗口。使用PPW可以将选项添加到第二个DDL(存储在mysql表中)。
现在弹出窗口选项工作正常,数据保存在表中。现在我唯一的选择就是刷新页面。我希望在单击PPW上的“关闭”按钮时发生事件。此事件应刷新第一个DDL,使先前选择的选项保持选中状态。它也可以这样做:我添加的数据应该在第二个DDL中选择。
代码
第一个DDL

<td>State Name</td>
<td><select id="a" name="a" onchange="ajax(this.value);">
<option value="">Select State Name</option>
<?php
$sql = "SELECT * FROM State";
$abc = mysql_query($sql);
while($row = mysql_fetch_array($abc)){
echo "<option value=\"".$row['scode']."\">".$row['State']."</option>\n";}
?>
</select></td>

第二个DDL
<td>School Name</td>
<td><select name="schname">
<option value="">Select School Name</option></select>
<A href="addsch.php?State=<?php echo $state?>&scode=<?php echo $scode?>"Target='_blank'>Add New School Name</a></td>

当选择了第一个DDL时,名为'ab'的ajax函数将进行刷新。
php在弹出窗口中打开一个带有submit按钮的表单,该按钮将表单数据保存到mysql表中。
示例:我从第一个DDL中选择“State1”,在第二个DDL中显示“State1”中的学校名称。我想添加一个学校名称(在第二个DDL中添加'State2',所以我使用add选项。保存表单数据后,我希望第一个DDL以这样的方式刷新,即“State1”保持在那里,而第二个DDL显示“State2”。否则至少刷新第一个DDL,然后用户可以自己从第二个DDL中选择“State2”。
怎么做?

最佳答案

如果它存储在MYSQL表中,那么系统就无法在不刷新页面的情况下刷新下拉列表。如果我对每件事都理解正确,这可能有助于你:
Open popup and refresh parent page on close popup
如果您不想刷新页面,而只想刷新下拉列表,则必须自己创建一个AJAX函数。
编辑:从外观上看,您最好停止刷新整个页面,并执行一个javascript函数,该函数将选项输入的值存储到会话数组中,并且每次加载此页面时,它都会查找此值。如果未设置关键点,则将选择第一个列表中的第一个选项。
快来看看这个js小提琴:
https://jsfiddle.net/98k456ho/1/

Needs jQuery

不幸的是,它不能工作,因为它使用sessionStorage,但您可以将其粘贴到php文件中,它应该可以工作。
sessionStorage类似于localStorage,它允许您存储可以很快访问的键/值“object”。与简单的cookie相比,它允许您存储更多的数据。
这段代码的作用是,每当您从列表中选择一个选项时,该值都会存储到会话数组中。每次加载页面时,它都会在会话中查找值,如果用户选择了第一个值,或者没有选择一个值,则会将默认值设置为“选择”。
在您的例子中,如果用户选择了例如“California”,他可以访问第二个列表中的所有选项。关闭弹出窗口后,因为所有内容都存储在会话中,所以所有内容都将相同。
需要注意的一点是,javascript需要在执行mysql查询之前运行,否则第一个下拉列表中的值将被选中,但第二个列表中的值将为零或错误。

关于php - 如何刷新父页面上的下拉列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31851453/

10-11 12:25