JavaScript如何增加价值

时间:2018-12-08 23:42:27

标签: javascript php jquery

我会知道如何在js中增加一个值。

我有这个

我的循环

<ul class="row list-unstyled" id="list">
  <?php
    $i = 0;

    while ($QoptionValue->fetch()) {
    }
  ?>
</ul>

添加新卡

<?php
  $card = '<li class="col-md-4" id="elementID' . $i . '">';
  $card .= '<div>';

  for ($l=0, $n=count($languages); $l<$n; $l++) {
    $card .= Language->getImage($languages[$l]['code']) . ' ' . HTML::inputField('option_value[' . $i . '][option_value_description][name][' . $l . ']', $options_name) . '<br />';
    $card .=  HTML::hiddenField('option_value[' . $i . '][option_value_description][language_id][' . $l . ']', $options_name);
}

 $card .= '</div>';
 $card .= '</li>';
?>

js,我添加了var element,但没有考虑

<script>
    var element = <?php echo $i; ?>

    $('#insert').click(function(){
       var str = <?php echo json_encode($card); ?>;
       // do the string replace
       var str = str.replace(/elementID/g, 'element'+element);
       $( "ul#list" ).append(str);
       // increment the element ID
       element++;
    });
</script>



<script type="text/javascript">
    $('.close').click(function(){
      var $target = $(this).parents('li');
      $target.hide('slow', function(){ $target.remove(); });
    })
  </script>

3 个答案:

答案 0 :(得分:0)

看看this answer-您需要先对PHP变量进行JSON编码:

var element = <?php echo json_encode($i); ?>

现在您的代码应该可以使用了。

答案 1 :(得分:0)

我不知道PHP如何工作,但是element++应该位于点击回调中。

$('#insert').click(function(){
  $( "ul#list" ).append(<?php echo json_encode($card); ?>);
    element++;
});

答案 2 :(得分:0)

您可以先在id上的javascript中执行str.replace,然后再将其附加到列表中。

将PHP中的元素设置为可以替换的字符串,例如elementID

<?php
  $card = '<li class="col-md-4" id="elementID">';
  ....
  $card .= '</li>';
?>

在javascript中,用递增的元素ID替换元素ID

<script>
    var element = <?php echo $i; ?>

    $('#insert').click(function(){
       var str = <?php echo json_encode($card); ?>;
       // do the string replace
       var str = str.replace(/elementID/g, 'element'+element);
       $( "ul#list" ).append(str);
       // increment the element ID
       element++;
    });
</script>