选择器中变量的语法正确,并在jQuery中使用php变量?

时间:2019-06-07 07:56:42

标签: jquery syntax

我似乎无法获得在选择器中包含变量的正确语法,例如$("input[name=' + Var +']"). What i'm attempting to do is have a variable set as a php variable and with var SomeVar =“”; then user it in a selector for a changing variable according to $ i` for for语句中。

我尝试以各种不同的方式使用引号,而我使用的是$("input[type=text]"."+var+""),我正在同一页面中为从数据库加载的多个产品运行相同的脚本。他们每个人都有一个复选框,这些复选框加起来总共有其他选项。还在努力使一个复选框处于选中状态。

     // FOR KEEPING ATLEAST ONE CHECKBOX CHECKED //
 $(document).ready(function(){
 var checkbox3 = "<?php echo $checkbox3;?>";
 $('input[name="'+checkbox3+'"]').click(function() {
 var checkbox4 = "<?php echo $checkbox4;?>";
    $('input[name="'+checkbox4+'"]').not(this).prop('checked', false);
 });
 var checkbox3 = "<?php echo $checkbox3;?>";
 $('input[name="'+checkbox4+'"]').click(function() {
 var checkbox4 = "<?php echo $checkbox4;?>";
    $('input[name="'+checkbox3+'"]').not(this).prop('checked', false);
 });
 });
 function displayVals() {
  calcUsage();
  var mySelect1 = "<?php echo $mySelect1; ?>";
  var singleValues = $('#'+mySelect1).val();
  var pricef1 = "<?php echo $pricef1; ?>"; 
  $('#'+pricef1).val(singleValues);
  }
  // FINAL VALUE DERIVED FROM OPTIONS AND CHECKBOXES //
  var ql1 = "<?php echo $qr1; ?>";
  var $cbs = $('input[id="'+qr1+'"]');
  function calcUsage() {
  var mySelect12 = "<?php echo $mySelect1; ?>";
  var total = $('#'+mySelect12).val();
  $cbs.each(function() {
   if (this.checked)
        total = parseInt(total) + parseInt(this.value);
   });
   var usertotal1 = "<?php echo $usertotal1; ?>";
   $('#'+usertotal1).text('R ' + total +'/day');
   }

该脚本旨在将页面上加载的每种产品的值加起来,以得出总计。

2 个答案:

答案 0 :(得分:0)

不需要创建javascript变量来包含要用作选择器名称的字符串值,只需直接使用PHP echo。我认为您对引号和双引号感到困惑。请记住,首先将解析PHP,然后将PHP中的值保留在最终包含您的javascript的文本文件中,因此,在将它们用作JS中的选择器字符串时,请将php块视为其结果字符串。

我已经重构了您的代码以进行说明。我还简化了复选框选择器部分(尽管如果您希望一组选项可用,但只能选择1,则应该使用单选按钮。)

function calcUsage() {
    var total = $('#<?php echo $mySelect1; ?>').val();
    $('#<?php echo $qr1; ?>').each(function() {
        if (this.checked) {
            total = parseInt(total) + parseInt(this.value);
        }
    });
    $('#<?php echo $usertotal1; ?>').text('R '+total+'/day');
}

function displayVals() {
    calcUsage();
    var singleValues = $('#<?php echo $mySelect1; ?>').val();
    $('#<?php echo $pricef1; ?>').val(singleValues);
}

$(document).ready(function(){
    $('input[type="checkbox"]').click(function(){
        $('input[type="checkbox"]').not($(this)).prop('checked', false);
    });
});

答案 1 :(得分:0)

尝试在此行中进行一些更改

$('input[name="'+checkbox4+'"]').not(this).prop('checked', false);

将其更改为:

$($('input[name="'+checkbox4+'"]').not(this)).prop('checked', false);