PHP/Javascript-根据第一个Select元素中的选择更改第二个Select元素,并通过POST和页面重新加载保留选择

PHP/Javascript-根据第一个Select元素中的选择更改第二个Select元素,并通过POST和页面重新加载保留选择,javascript,php,html,select,onchange,Javascript,Php,Html,Select,Onchange,首先选择: <?php function select_size($itemSizes){ echo "<select id=\"size\" name=\"size\">"; $sizes = array("0" => "All Sizes","1" => "Large","2" => "Medium","3" => "Small"); foreach($sizes as $s => $si){ if($i

首先选择:

<?php

function select_size($itemSizes){

echo "<select id=\"size\" name=\"size\">";

    $sizes = array("0" => "All Sizes","1" => "Large","2" => "Medium","3" => "Small");

    foreach($sizes as $s => $si){
        if($itemSizes == $s){$selected = "selected";}
        echo "<option value=\"" . $s . "\" $selected>" . $si . "</option>\n";
        $selected = "";
    }

echo "</select>\n";

}

?>
第二选择:

$(document).ready(function() {

    $("#eventCategory").change(function() {
        var val = $(this).val();
        $("#eventType").html(options[val]);
    });

    var options = ["
        <option value='all_items'>ALL Items</option>
        <option value='red'>red</option>
        <option value='blue'>blue</option>
        <option value='green'>green</option>
    ];

});

由于PHP,First select保留值。一旦更改正常工作,因为一旦选择了Select 1中的值,Select 2就会填充相应的列表。我遇到的问题是SELECT2没有通过POST和页面重新加载来保留它的值。我已经设计了一个JS来实现这一点,但是它破坏了onChange函数。我正试图同时实现这两个目标,但到目前为止都失败了。是的,我是JS的业余爱好者。对很多其他语言都很好。语法给我带来了麻烦。非常感谢您的帮助。

您可以在首次选择触发onChange事件时发送ajax。 然后,在这个Ajax成功之后,您可以从php获取值并更改第二个值。在使用ajax时,第一个选项不会被修改

当您要求重新加载页面时,您需要在浏览器可以呈现的视图中打印脚本,如下所示:

$('#selector1 option[value="'.$value.'"]').attr("selected", "selected");
如果您知道每个选项的ID(如果有):

echo "<script> $('#selector1 option#'.$idOption.').attr('selected', 'selected'); </script>";
其中,在第一种情况下,$idOption是在第一个选择器上选择并从php检索的选项的id$第二个脚本中的值为。。嗯,价值

我真的不知道是否有解决你的整个问题,因为我只能看到你的代码的一部分,如果你提供反馈,我会编辑它

也许您可以使用var_dump/console.log值来获取数据的回溯,并查看数据丢失的位置,以确保在功能上传递所需的数据。

“我遇到的问题是Select 2没有通过POST和页面重新加载来保留其值。”-那么创建它的服务器端代码在哪里呢?您刚刚向我们展示了一些操纵已经存在的字段的JavaScript。