Правильный синтаксис для переменной в селекторе и использование переменных PHP с JQuery? - PullRequest
0 голосов
/ 07 июня 2019

Не получается получить правильный синтаксис для включения переменной в селектор, такой как $("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.

Я пробовал использовать цитаты различными способами, я использовал $("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 голосов
/ 07 июня 2019

Попробуйте сделать небольшое изменение в этой строке

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

измените его на:

$($('input[name="'+checkbox4+'"]').not(this)).prop('checked', false);
0 голосов
/ 07 июня 2019

Вам не нужно создавать переменные javascript, содержащие строковые значения, которые вы хотите использовать в качестве имен селекторов, просто используйте PHP-эхо напрямую. Я думаю, что вы путали себя с кавычками и двойными кавычками. Помните, что сначала будет проанализирован 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);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...