作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
-6ren">
product_listing.php 表格部分
<?php
$arr_cat_bn = [category01, category02];
$arr_subcat_ln_for_cbo_default = [subcategory01, subcategory02]; // For category01
$arr_subcat_ln_for_cbo_default = [subcategory11, subcategory12]; // For category02
$str_cat_bn_default = $arr_cat_bn[0];
if(isset($_POST["cbo_cat_bn"]))
{
$str_cat_bn_default = trim($_POST["cbo_cat_bn"]);
}
$str_subcat_ln_form = $arr_subcat_ln_for_cbo_default[0];
if(isset($_POST["cbo_subcat_ln"]))
{
$str_subcat_ln_form = trim($_POST["cbo_subcat_ln"]);
}
?>
<form role="form" name="frm_add" method="POST" action="product_listing.php">
<select name="cbo_cat_bn" id="cbo_cat_bn" onChange="get_subcat_ln(this.value);">
<?php
foreach($arr_cat_bn as $cat_bn) {
if($str_cat_bn_default == $cat_bn) { $str_selected="selected"; } else { $str_selected = ""; } ?>
<option value="<?php echo $cat_bn; ?>" <?php print($str_selected);?>><?php echo $cat_bn; ?></option>
</select>
<div id="before_get_subcat_ln">
<select name="cbo_subcat_ln" id="cbo_subcat_ln" onChange="get_qty(this.value);">
<?php
sort($arr_subcat_ln_for_cbo_default);
foreach($arr_subcat_ln_for_cbo_default as $subcat_ln) {
if(trim($str_subcat_ln_form) == trim($subcat_ln)) { $str_selected_ln = "selected"; } else { $str_selected_ln = ""; }
?>
<option value="<?php echo $subcat_ln; ?>" <?php print($str_selected_ln);?>><?php echo $subcat_ln; ?></option>
</select>
</div>
<div id="after_get_subcat_ln"></div>
<div id="before_get_qty">
<input type="text" id="txt_qty" name="txt_qty" value="<?php print($int_qty); ?>">
</div>
<div id="after_get_qty"></div>
<button type="submit" >SUBMIT</button>
</form>
product_listing.php jQuery 部分
<script>
function get_subcat_ln(catbn) {
var str_catbn = catbn;
var dataString = "cat_bn_all="+str_catbn;
$.ajax({
type: "POST",
url: "../user/get_subcategory_p.php?",
data: dataString,
success: function(html)
{
$("#before_get_subcat_ln").hide();
$("#after_get_subcat_ln").html(html);
}
});
}
function get_qty(subcatln) {
var str_subcatln = subcatln;
var dataString = "cat_bn_all_and_subcat_ln="+str_subcatln;
$.ajax({
type: "POST",
url: "../user/get_qty_p.php?",
data: dataString,
success: function(html)
{
$("#before_get_qty").hide();
$("#after_get_qty").html(html);
}
});
}
</script>
get_subcategory_p.php(在类别选择框的基础上自动填充子类别选择框)
arr_subcat_ln
中。并像这样返回 PHP 页面。
echo "<select name='cbo_subcat_ln' id='cbo_subcat_ln'>";
sort($arr_subcat_ln);
foreach($arr_subcat_ln as $subcat_ln) {
echo "<option value='" . $subcat_ln . "'>" . $subcat_ln . "</option>";
}
echo "</select>";
get_qty_p.php(在子类别选择框的基础上自动填充数量文本框)
str_PackageSize
中。并像这样返回 PHP 页面。
echo "<input type='text' id='txt_qty' name='txt_qty' value='".$str_PackageSize."'>";
最佳答案
由于子类别选择框是动态创建的,您需要调用 get_qty(subcatln)
在 ajax 的成功函数下并传递子类别的默认值,该值在 html
中可用.现在,要传递默认值,您可以使用两种方式。它们如下:
第一种方式 : 你可以通过 html
选择器中的字符串,即:$()
然后使用 find(":first-child").val()
这将为您提供选择框的第一个选项,然后您可以将其传递给您的 get_qty(subcatln)
功能。
演示代码 :
var html = '<select name="cbo_subcat_ln" id="cbo_subcat_ln"><option value="first">first</option><option value="second">second</option><option value="third">third</option></select>'
var subcatln = $(html).find(":first-child").val();
console.log("First default value : "+subcatln);
//call function
//get_qty(subcatln)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
after_get_subcat_ln
里面是否有任何选择,根据这个你可以获得选择的值(value)并将其传递给你的
get_qty(subcatln)
.
var html = '<select name="cbo_subcat_ln" id="cbo_subcat_ln"><option value="first">first</option><option value="second">second</option><option value="third">third</option></select>'
$("#after_get_subcat_ln").html(html);
//check if the div have `cbo_subcat_ln`
if ($("#after_get_subcat_ln").find("select#cbo_subcat_ln").length > 0) {
//get that value
var subcatln = $("select#cbo_subcat_ln :first-child").val()
console.log("Second way : " + subcatln)
//call function
//get_qty(subcatln);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="after_get_subcat_ln"></div>
get_subcat_ln(catbn)
的 ajax 成功中功能。即:
function get_subcat_ln(catbn) {
...
$.ajax({
type: "POST",
url: "../user/get_subcategory_p.php?",
data: dataString,
success: function(html)
{
$("#before_get_subcat_ln").hide();
$("#after_get_subcat_ln").html(html);
//here you need to get value of either way
//call get_qty(subcatln) to update qty input
}
});
}
关于javascript - 如何在第一个选择框的基础上自动填充第二个选择框并在第二个选择框的基础上自动填充文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63308029/
我一直在从事一个开源项目。它使用安装在 jdk8 镜像上的构建生成的 debian (.deb) 软件包创建 docker 镜像。 但最近我开始犯错误,不幸的是我无法克服它。一旦通过 Dockerfi
我正在尝试使这些卡片可点击以重定向到另一个屏幕,但我无法弄清楚 let cards = this.state.items.map(item => ( Actions.dog
我是一名优秀的程序员,十分优秀!