[英]Quotes in JQuery / JavaScript when using PHP print function
[英]Javascript function with vars on PHP print: quotes
我只是想知道是否有更好的方法來記下傳遞給PHP打印內部的javascript函數的PHP變量:
while($nav = mysqli_fetch_array($nav_db)){
print '<li>
<a href="#" onclick="getProductPage('.$nav['id'].', \''.$name.'\')">
'.$nav['Data'].'
</a>
</li>';
}
哪里
$nav['id']
是一個INTEGER所以我不需要額外的''為JS,和
$name
不是INTEGER所以我需要JS的那些\\'\\'。
特別是這一步:
getProductPage('.$nav['id'].', \''.$name.'\')
謝謝
<?php while($nav = mysqli_fetch_array($nav_db)): ?>
<li>
<a onclick="getProductPage(<?php echo $nav['id']; ?>, '<?php echo $name; ?>')">
<?php echo $nav['Data']; ?>
</a>
</li>
<?php endwhile; ?>
你應該打破PHP編寫html。 這樣更干凈。 此外,你有一個流氓</span>
,而且<li>
菜單中不需要<br>
。 此外, a
標簽應該有一個href
值,即使它是#
或javascript:void(0)
或其他東西。
你應該使用json_encode
將變量從php傳遞給javascript。 這將確保沒有未轉義的字符可以破壞您的JavaScript。
所以json_encode($name)
代替$name
等。
對於你的例子:
print '<li>
<a onclick="getProductPage(' . (int) $nav['id'].', ' . json_encode($name) . ')">
' . htmlspecialchars($nav['Data']) . '
</a>
</li>';
你考慮過使用jquery和ajax將數據發送到php文件並將json_encode數組發送回javascript嗎?
例
在使用數據類型json向php發送ajax調用之后,發回這樣的變量
$data['id'] = nav['id'];
echo json_encode($data);
or just $nav['id']
echo json_encode($nav)
在你的JavaScript中。 成功時,您可以像這樣檢索id值
ajax{(
blah,
blah,
...
success(msg){
alert(msg.id)
}
})
您可以將var作為對象訪問,上面的代碼將提醒id的值。 您可以將msg.id分配給javascript var或將其傳遞給函數...等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.