传递无线电值而不知道唯一的无线电名称

时间:2017-11-17 16:30:54

标签: javascript php jquery mysql ajax

我创建了一个广播组列表,并将它们附加到产品类别。那么我正在做的是检查该类别所要具有的组然后然后选择该类别可用的组中的无线电值并将其显示给用户以填充。

接下来我想将它们传递给我的ajax函数,然后将其注入数据库。问题是我无法从我的ajax中获取无线电输入的唯一名称,因为我从数据库加载它。

<?php $notarray = DataDB::getInstance()->select_from_where('pro_print_group','product_category_id',$cat);
    while ($row = mysqli_fetch_assoc($notarray)) {?>
     <div class="col-sm-12">
      <label for="quantity"><?php echo DataDB::getInstance()->get_name_from_id('group_n','print_type_group','print_type_group_id',$row['print_type_group_id']); ?></label>
      <div class="printd-group">
       <?php
       $not = DataDB::getInstance()->select_from_where('print_type','print_type_group_id',$row['print_type_group_id']);
       foreach($not as $ow):?>
        <label class="printd">                          
            <input name="prind<?php echo $row['print_type_group_id'] ;?>[]" id="prind<?php echo $row['print_type_group_id'] ;?>[]" value="<?php echo $ow['print_type_id'] ;?>" checked="" type="radio" class="name" data-price="0"> <?php echo $ow['name'] ;?>
        </label>
        <?php endforeach; ?>
      </div>
      </div>
      <?php } ?>

Ajax功能 提交表单时,我调用此函数

function testpr() {
     document.getElementById("load").style.display = "block";
    var track = 'YU6758990';
    var printd = $('#printd').val();
     $.ajax({
         type: 'post',
         url: 'frverify.php',
        data: "track=" + track + "&printd=" + printd + "&ins=testp",
             success: function(data)
        {   
            document.getElementById("load").style.display = "none";
            jQuery('#get_prresult').html(data).show();
            scroll_to('#messs');

        }
    });
}

PHP功能 然后ajax函数将它传递给这个php函数,我将接收post请求,然后将所选的radio值插入数据库,然后将响应返回给我的前端

function test(){
    $track = $_POST['tack'];
    $printd = $_POST['printd'];

    echo DataDB::getInstance()->testp($track,$printd);              

 }

1 个答案:

答案 0 :(得分:0)

我的猜测是生成了多个单选按钮,如果是这样的话,你可以试试这样的东西。

<input name="printd[<?php echo $row['print_type_group_id'] ;?>]" id="<?php echo $row['print_type_group_id'] ;?>" value="<?php echo $ow['print_type_id'] ;?>" checked="" type="radio" class="name" data-price="0"> <?php echo $ow['name'] ;?>

然后在您的Javascript中更改使用serialize检索表单值的方式。

data: "track=" + track + "&" + $('form#id.selector').serialize() + "&ins=testp"

然后在PHP脚本中使用某种foreach循环迭代值

function test(){
    $track = $_POST['tack'];
    foreach($_POST['printd'] as $key => $value){
        //$key => print_type_group_id
        //$value => print_type_id
    }
    echo DataDB::getInstance()->testp($track,$printd);              
}

不确定您要对数据做什么以及实际需要什么,但这应该会向您发送正确的方向。