我是否可以动态获取<;的值;选项>;并将其传递给PHP而不使用AJAX?
我有两个我是否可以动态获取<;的值;选项>;并将其传递给PHP而不使用AJAX?,php,jquery,Php,Jquery,我有两个一个是类别,第二个是子类别 这是类别的第一个 <select name="category" size="10"> <?php foreach($categories->fetch(array('table' => 'categories')) as $category) { ?> <option value="<?php echo $category['id']; ?>"><?php echo $
一个是类别,第二个是子类别
这是类别的第一个
<select name="category" size="10">
<?php foreach($categories->fetch(array('table' => 'categories')) as $category) { ?>
<option value="<?php echo $category['id']; ?>"><?php echo $category['name']; ?></option>
<?php } ?>
</select>
现在,第二个
即子类别最初应该隐藏,当用户根据值单击类别
时,它应该填充子类别中的值
一种方法是通过AJAX,将categoryId作为POST请求传递,并将HTML作为响应
但是,我想知道是否还有其他选择,以便它自动将categoryId值传递给PHP,并取消隐藏第二个
这里是第二个
的代码
这里我只需要动态填充$categoryId。有没有办法做到这一点
谢谢你。不,没有办法按照你的建议去做。PHP只在服务器上运行,因此在客户端呈现页面时,PHP已经运行 您最好的选择是您已经建议的,在第一个select更改后运行一些AJAX,将category ID发送回服务器,并检索构建第二个select所需的内容
你不想这样做有什么原因吗 不,没有办法按照你的建议去做。PHP只在服务器上运行,因此在客户端呈现页面时,PHP已经运行 您最好的选择是您已经建议的,在第一个select更改后运行一些AJAX,将category ID发送回服务器,并检索构建第二个select所需的内容
你不想这样做有什么原因吗 Sukumar可能已经提出了最好、最直观的解决方案,使数据看起来像是动态加载给用户的
另一种选择是在选择框更改时提交表单。表单提交后,PHP将从POST数组中提取ID,然后重新填充子类别选择框。如果用户没有启用JavaScript,这通常被用作后备方案。Sukumar可能已经建议了最好、最直观的解决方案,使其看起来像是动态地向用户加载数据
另一种选择是在选择框更改时提交表单。表单提交后,PHP将从POST数组中提取ID,然后重新填充子类别选择框。在用户未启用JavaScript的情况下,这通常用作回退。从结构上讲,有三种选择可以解决此问题:
住宅小区
、住宅公寓
、办公空间
和展厅
,则您可以将它们设为对象上的四个键,并以这种方式存储数据:
var data = {
"residential_plot": 1,
"residential_apartment": 2,
"office_space": 3,
"showroom": 4
};
1、2、3和4就是您想要为该类型存储的任何数据。它可以是数字、字符串、数据数组、其他数据对象等等
要访问此文件,请执行以下操作:
var id = data.residential_plot;
var id = data.residential.residential_plot;
var category = "residential";
var catType = "residential_plot";
var id = data[category][catType];
或
如果要存储类别和子类别的概念,则需要额外级别的对象:
var data = {
"residential": {"residential_plot": 1, "residential_apartment": 2},
"commercial": {"office_space": 3, "showroom": 4}
};
然后,您可以这样访问它:
var id = data.residential_plot;
var id = data.residential.residential_plot;
var category = "residential";
var catType = "residential_plot";
var id = data[category][catType];
或者像这样:
var id = data.residential_plot;
var id = data.residential.residential_plot;
var category = "residential";
var catType = "residential_plot";
var id = data[category][catType];
从结构上讲,解决这一问题有三种选择: