请参阅下面的代码,
<div class="product_id" id="3"></div>
<?php
$id = "<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>";
echo "<br>";
echo $id;
echo "<br>";
echo intval($id);
?>
如果我执行此代码输出是,
3
0
我不知道它为什么不转换。我需要显示为,
3
3
由于
答案 0 :(得分:2)
PHP不知道JavaScript在浏览器中运行时显示的是什么。看看你的源代码,你会看到我的意思。第一个“3”实际上不是“3”。这是JavaScript代码。 Javascript代码是一个字符串,intval“强制转换”为“0”。
答案 1 :(得分:0)
尝试。您需要TypeCast
喜欢
echo (int)$id;
答案 2 :(得分:0)
intval($id)
尝试将"<script>...</script>"
转换为整数,当然也会失败。看一下doc(intval
),“返回值”部分告诉我们:
成功时var的整数值,或失败时 0 。
另请注意,echo
打印服务器端,document.write
打印浏览器端。现在,让我们来看看你的PHP代码:
<div class="product_id" id="3"></div>
<?php
$id = "<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>";
echo "<br>"; // prints "<br>"
echo $id; // prints "<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>"
echo "<br>"; // prints "<br>"
echo intval($id); // prints "0" (since intval failed)
?>
以下是在浏览器中加载的结果HTML:
<div class="product_id" id="3"></div>
<br>
<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>
<br>
0