我遇到语法问题。 我想在JavaScript中插入PHP代码。并且发生错误, 任何人都可以帮我这个吗?
这是错误,
var data1 = $('#assignedWeight').val("<h3>" + <?php echo number_format(data[0]['id'],2); ?> + "<sup style='font-size: 20px'>Kg</sup></h3><p>TOTAL PROJECT WEIGHT ASSIGNED</p>").val();
最初的JS是这样的,
showData.push(data[i]["id"]);
var data1 = $('#assignedWeight').val(data[0]['id']).val();
$('#assignedWeight').text(data1);
我希望在第2行的val()中插入此代码
<h3>
<?php echo number_format($totalAssignedWeight,2); ?><sup style="font-size: 20px">Kg</sup>
</h3>
<p>TOTAL PROJECT WEIGHT ASSIGNED</p>
答案 0 :(得分:2)
正如我在评论中指出的那样,Javascript在执行服务器端代码(PHP)后执行。另一种方法是通过Ajax请求将任何动态数据再次发送到服务器,从而管理用javascript所需的数据执行PHP代码。
修改强>:
如果您只需要PHP格式编号,则可以使用Intl.NumberFormat:
var number = 3500;
console.log(new Intl.NumberFormat().format(number));
// → '3,500' if in US English locale
Jsfiddle :http://jsfiddle.net/x6nu7a7c/
文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat
答案 1 :(得分:1)
首先:你想要做的事情并没有真正意义,正如另一个已经指出的那样,应该完全不同地处理。
我仍然想回答你的问题,因为有时你需要/必须用php构建部分javascript。
您的错误在于,您认为必须将php output
视为javascript变量。你结束了双引号并希望将其插入那里。但这是错误的。从javascript的角度来看(它对php一无所知,因为它在客户端呈现,因此在处理完所有php之后(在服务器上))php的输出只是一个纯文本,而不是变量。所以你要做的就是,不要结束你的双引号。
var data1 = $('#assignedWeight').val("<h3><?php echo number_format(data[0]['id'],2); ?><sup style='font-size: 20px'>Kg</sup></h3><p>TOTAL PROJECT WEIGHT ASSIGNED</p>").val();
另请注意:如果您的php output
可以包含双引号("
),则需要使用适当的javascript函数转义它们,否则您将出现javascript错误。
第二个注意事项:显然,此代码段仅适用于php处理器实际处理的文件(大多数只有.php
个文件)。如果您将此代码段移动到实际的js文件(这是您正常工作的方式),它就不再适用了。