将PHP变量传递给JavaScript函数

时间:2015-01-18 20:39:02

标签: javascript php jquery

我想将PHP变量传递给JS函数,如:

onclick='handleClick($phpVar);'

但不幸的是,即使将php变量转换为字符串,函数也不会取值。

这两个代码块如下所示:

PHP:

while($stmt->fetch()) { 
  echo "<tr><td>" 
  . htmlspecialchars($company) 
  . "</td><td id='$price'>" 
  . htmlspecialchars($volume)
  . "</td><td id='$price'>" 
  . htmlspecialchars($price)
  . "</td><td>" 
  <button type='submit' class='submit-btn'>Submit</button>
  </td><td>
     <label tabindex='0' class='checkbox'>
     <input type='checkbox' style='opacity:0' checked='checked' onclick='handleClick($price);'/>
     <i class='close-btn fa fa-edit'></i>
     </label>
  </td></tr>";
} 

JavaScript的:

function handleClick(id) {
   document.getElementById(id).style.fontSize=="150%");
}

2 个答案:

答案 0 :(得分:1)

您应该能够为该函数添加PHP值。我试着弄乱它。我在最后一个表项后删除了一个引号,并在javascript中对函数调用进行了一些更改。

while($stmt->fetch()) { 
  echo "<tr><td>" 
  . htmlspecialchars($company) 
  . "</td><td id='$price'>" 
  . htmlspecialchars($volume)
  . "</td><td id='$price'>" 
  . htmlspecialchars($price)
  . "</td><td> 
  <button type='submit' class='submit-btn'>Submit</button>
  </td><td>
     <label tabindex='0' class='checkbox'>
     <input type='checkbox' style='opacity:0' checked='checked' onclick='handleClick(".$price.");'/>
     <i class='close-btn fa fa-edit'></i>
     </label>
  </td></tr>";
} 

我希望这有帮助!

利安

答案 1 :(得分:1)

由于您已经在$ price变量上使用htmlspecialchars来显示它,我只能假设您不信任此变量的内容。出于安全原因,您还应该对价格进行json_encode,然后在将javascript放入onclick属性时转义整个属性。根据{{​​3}}

<?php
while($stmt->fetch()) { 
  ?>  
  <tr>
    <td><?php echo htmlspecialchars($company); ?></td>
    <td id='<?php echo htmlspecialchars($price); ?>'><?php echo htmlspecialchars($volume); ?></td>
    <td id='<?php echo htmlspecialchars($price); ?>'><?php echo htmlspecialchars($price); ?></td>
    <td>
      <button type='submit' class='submit-btn'>Submit</button>
    </td>
    <td>
      <label tabindex='0' class='checkbox'>
        <input type='checkbox' style='opacity:0' checked='checked' onclick='<?php echo htmlspecialchars('handleClick(' . json_encode($price) . ');') ?>'/>
        <i class='close-btn fa fa-edit'></i>
      </label>
    </td>
  </tr><?php
}