0

在我的 SQL 中,echo $row['ans'] 是 varchar(11) 类型:JAN,FEB,MAR,APR。我现在知道为什么它不会显示出来,但是当我将 JAN、FEB、MAR、APR 更改为数字时,它可以工作。请把你的知识和理解传授给我。谢谢!

选择框

  var months = [<?php echo '"'.implode('","',explode(",",$rows['ans'])).'"'; ?> ];
  months.sort( function() { return Math.random() - .5 } );
  for ( var i=0; i<4; i++ ) {
    $('<div>' + months[i] + '</div>').data( 'months', i ).appendTo( '#monthPile' ).draggable( {
      //containment: '#content',
      stack: '#monthPile div',
      cursor: 'move',
      revert: true
    } );
  }

创建插槽

  var slot = [<?php echo '"'.implode('","',explode(",",$rows['ans'])).'"'; ?> ];
  for ( var i=0; i<=3; i++ ) {
    $('<div>' + slot[i] + '</div>').data( 'months', i ).appendTo( '#monthSlots' ).droppable( {
      accept: '#monthPile div',
      hoverClass: 'hovered',
      drop: handleCardDrop
    } );
  }

}
4

1 回答 1

0

将字符串注入 javascript 时,您需要在这些字符周围加上 "" 以表明它是一个字符串。您的数字有效,因为没有“” javascript 将这些字符解释为数字。尝试使用 php implode 函数在数组中的字符串周围添加双引号(假设 $row['ans'] 包含一个数组)

更新工作示例:

<?php
$rows = array(
    "ans" => "JAN,FEB,MAR"
);
?>
<html>
<body>
<script type="text/javascript">
    var test = [<?php echo '"'. implode('","',explode(",",$rows['ans'])) . '"'; ?>];
    document.write(test.toString());
</script>
</body>
</html>
于 2013-07-24T15:13:19.030 回答