如何在使用Ajax时在JavaScript和php中设置下拉列表的增量值
我正在研究多动态下拉选项,并尝试在使用Ajax时在JavaScript和php中为下拉选项单击添加按钮(函数use.append in JavaScript)时设置增量值,因此需要解决此问题:如何在使用Ajax时在JavaScript和php中设置下拉列表的增量值,javascript,php,mysql,ajax,pdo,Javascript,Php,Mysql,Ajax,Pdo,我正在研究多动态下拉选项,并尝试在使用Ajax时在JavaScript和php中为下拉选项单击添加按钮(函数use.append in JavaScript)时设置增量值,因此需要解决此问题: <?php // it is use for database connection with PDO function load_country(){ include('config.php'); $output = ''; $statement = $db-
<?php // it is use for database connection with PDO
function load_country(){
include('config.php');
$output = '';
$statement = $db->prepare("SELECT * FROM tbl_country ORDER BY country_name");
$statement->execute();
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $row) {
$output .= '<option value="'.$row["country_id"].'">'.$row["country_name"].'</option>';
}
return $output;
}
?>
<html> <head> <script src="jquery.js"></script> </head> //This is the form part of html
<body>
<table><input type="button" class="btn btn-primary add" value="+">
<tbody class="details">
<tr>
<td><select name="country[]" class="country"><option value="">Country</option> <?php echo load_country(); ?></select></td>
<td><select name="state[]" class="state"><option value="">state</option> </select></td>
<td><select name="money[]" class="money"><option value="">money</option></select></td>
</tr>
</tbody>
</table>
</body>
</html>
<script type="text/javascript">
var i = 0;
$(function(){
$('.add').click(function(){ // here add button code
var tr = '<tr>'+
'<td><select name="country[]" class="country'+i+'"><option value="">Select Country</option> <?php echo load_country(); ?></select></td>'+
'<td><select name="state[]" class="state'+i+'"><option value="">Select state</option> </select></td>'+
'<td><select name="money[]" class="money'+i+'"><option value="">Select money</option></select></td>'+
'</tr>';
$('.details').append(tr); // append function
$(document).ready(function(){ // ajax data load for country
$('.country+i+').change(function(){
var country_id = $(this).val();
$.ajax({
url:"fetch_state.php",
method:"POST",
data:{countryId:country_id},
dataType:"text",
success:function(data) {
$('.state+i+').html(data);
}
});
});
});
$(document).ready(function(){ // ajax data load for state
$('.state+i+').change(function(){
var state_id = $(this).val();
$.ajax({
url:"fetch_money.php",
method:"POST",
data:{stateId:state_id},
dataType:"text",
success:function(data) {
$('.money+i+').html(data);
}
});
});
});
});
i++;
});
$(document).ready(function(){
$('.country').change(function(){
var country_id = $(this).val();
$.ajax({
url:"fetch_state.php",
method:"POST",
data:{countryId:country_id},
dataType:"text",
success:function(data) {
$('.state').html(data);
}
});
});
});
$(document).ready(function(){
$('.state').change(function(){
var state_id = $(this).val();
$.ajax({
url:"fetch_money.php",
method:"POST",
data:{stateId:state_id},
dataType:"text",
success:function(data) {
$('.money').html(data);
}
});
});
});
</script>
//这是html的表单部分
国家
陈述
钱
var i=0;
$(函数(){
$('.add')。单击(函数(){//此处添加按钮代码
var tr=''+
“选择国家”+
“选择状态”+
“选择货币”+
'';
$('.details').append(tr);//append函数
$(document).ready(function(){//ajax国家/地区数据加载)
$('.country+i+')。更改(函数(){
var country_id=$(this.val();
$.ajax({
url:“fetch_state.php”,
方法:“张贴”,
数据:{countryId:country_id},
数据类型:“文本”,
成功:函数(数据){
$('.state+i+').html(数据);
}
});
});
});
$(document).ready(function(){//ajax状态数据加载
$('.state+i+').change(function(){
var state_id=$(this.val();
$.ajax({
url:“fetch_money.php”,
方法:“张贴”,
数据:{stateId:state_id},
数据类型:“文本”,
成功:函数(数据){
$('.money+i+').html(数据);
}
});
});
});
});
i++;
});
$(文档).ready(函数(){
$('.country').change(函数(){
var country_id=$(this.val();
$.ajax({
url:“fetch_state.php”,
方法:“张贴”,
数据:{countryId:country_id},
数据类型:“文本”,
成功:功能(数据){
$('.state').html(数据);
}
});
});
});
$(文档).ready(函数(){
$('.state').change(函数(){
var state_id=$(this.val();
$.ajax({
url:“fetch_money.php”,
方法:“张贴”,
数据:{stateId:state_id},
数据类型:“文本”,
成功:函数(数据){
$('.money').html(数据);
}
});
});
});
我的代码看起来很庞大,但我尝试分享它可以帮助您理解我的问题的所有内容。
当点击AddAppend函数时,它可以正常工作,但是ThinkIs下拉列表不能像第一个一样工作,所以我使用增量值作为“I”。但不起作用。我展示一张图片,你能理解我需要什么
我希望你能帮助我。提前感谢。使用
$('.state'+i).html(data);
$('.money'+i).html(data);
$('.country'+i)
$('.state'+i)
反而
$('.state+i+').html(data);
$('.money+i+').html(data);
$('.country+i+')
$('.state+i+')
无需反复生成相同的
js
代码。只需使用三个类。你可以这样试试
这里我使用了一些虚拟选项,因为我无法访问ajax响应
HTML:
而不是:
$('.country').change(function(){
.............
............
});
谢谢,但最后一个ajax函数?我应该用什么?对不起!我不明白。谢谢你宝贵的回答,但在你回答之前,我会先用Mahfuzur Rahman博士的回答来解决。
$(document).ready(function(){
$('.add').click(function(){ // here add button code
var tr = '<tr>'+
'<td><select name="country[]" class="country"><option value="">Country</option> <option value="1">Country 1</option> <?php echo load_country(); ?></select></td>'+
'<td><select name="state[]" class="state"><option value="">state</option><option value="1">state 1</option> </select></td>'+
'<td><select name="money[]" class="money"><option value="">Select money</option></select></td>'+
'</tr>';
$('.details').append(tr); // append function
});
$(document).on('change', '.country', function(){
var country_id = $(this).val();
var _this = $(this).parents("tr").find(".state");
$.ajax({
url:"fetch_state.php",
method:"POST",
data:{countryId:country_id},
dataType:"text",
success:function(data) {
$(_this).html(data);
}
});
});
$(document).on('change', '.state', function(){
var state_id = $(this).val();
var _this = $(this).parents("tr").find(".money");
$.ajax({
url:"fetch_money.php",
method:"POST",
data:{stateId:state_id},
dataType:"text",
success:function(data) {
$(_this).html(data);
}
});
});
});
$(document).on('change', '.country', function(){
.............
............
});
$('.country').change(function(){
.............
............
});