如何用PHP打印JavaScript
我需要向PHP传递一些JS变量,我遇到了一些问题 我尝试了以下方法:如何用PHP打印JavaScript,javascript,php,jquery,Javascript,Php,Jquery,我需要向PHP传递一些JS变量,我遇到了一些问题 我尝试了以下方法: $product_id = "<script> var prod_id_one = $('ul.products li:nth-child(1) a.button').attr('data-product_id')</script>"; echo $product_id; product\u id=“var prod\u id\u one=$('ul.products li:nth child(1)a
$product_id = "<script> var prod_id_one = $('ul.products li:nth-child(1) a.button').attr('data-product_id')</script>";
echo $product_id;
product\u id=“var prod\u id\u one=$('ul.products li:nth child(1)a.button').attr('data-product\u id')”;
echo$product\u id;
但这只是将其打印为字符串:
`<script> var prod_id_one = $('ul.products li:nth-child(1) a.button').attr('data-product_id');</script>`
`var prod_id_one=$('ul.products li:n子(1)a.button').attr('data-product_id')`
我将如何存储JS变量,然后使用PHP
echo
?我对PHP很陌生,所以任何帮助都将不胜感激 JavaScript在客户端运行,而PHP在服务器上运行。它们在页面生命周期中完全不同的时间执行,因此它们无法以您使用的方式进行通信
相反,您可以使用AJAX将JS中的值发送到PHP页面。按照您的方式执行,这是不可能的。PHP不能在同一页面中直接“读取”或“与”javascript交互 您必须了解PHP是一个预处理器,它在服务器上生成HTML,然后将生成的页面发送到客户端。在本页中,PHP代码已完全消失。您只能看到它生成的内容(即HTML或JS)。然后,javascript代码运行,它不知道它是使用PHP生成的,也不知道PHP的存在 为了将变量传递给PHP脚本,必须使用GET或POST方法调用该文件: (JS) (myScript.php)
当然,这是一个非常基本的例子。永远不要直接阅读和使用发送到PHP的内容(就像我刚才做的那样),因为任何人都可以注入他们想要的任何东西 谢谢您的帮助,非常感谢!我已经按照建议使用ajax完成了这项工作:
<script type="text/javascript">
jQuery("document").ready(function(){
var $ = jQuery
$("form").submit(function(){
var data = "";
data = $(this).serialize() + "&" + $.param(data);
var prod_id_one = $('#prod1').val();
var prod_id_two = $('#prod2').val();
var prod_id_three = $('#prod3').val();
var prod_id_four = $('#prod4').val();
$.ajax({
type: "GET",
url: "my_ajax_url_here",
data: data,
success: function(data){
window.location = "price-calculator?width="+ $('#wpti-product-x').val() + "&height=" + $('#wpti-product-y').val() + "&id1=" + prod_id_one + "&id2=" + prod_id_two + "&id3=" + prod_id_three + "&id4=" + prod_id_four;
}
});
return false;
});
});
</script>
jQuery(“文档”).ready(函数(){
var$=jQuery
$(“表格”)。提交(函数(){
var数据=”;
data=$(this.serialize()+“&”+$.param(data);
var prod_id_one=$('#prod1').val();
var prod_id_two=$('#prod2').val();
var prod_id_three=$('prod3').val();
var prod_id_four=$('#prod4').val();
$.ajax({
键入:“获取”,
url:“我的网址”,
数据:数据,
成功:函数(数据){
window.location=“价格计算器?width=“++”(“#wpti-product-x”).val()+”&height=“++”(“#wpti-product-y”).val()+”&id1=“+prod_id_one+”&id2=“+prod_id_two+”&id3=“+prod_id_two+”&id4=“+prod_id_four;
}
});
返回false;
});
});
它现在正在使用上述代码。再次感谢 PHP是服务器端,Javascript是客户端。因此,PHP所做的工作比Javascript更重要。如果你想在说“从Javascript到PHP”时传递一些信息,你必须向服务器发出请求(例如通过链接、表单或Ajax调用)。我认为它应该像你那样工作。您使用的是框架吗?能否确保代码中没有类似于
htmlspecialchars
的内容?谢谢@Pierre Jean没有特殊的框架,也没有htmlspecialchars
。我将不得不重新思考上一步,并对其进行一些修改。@Pierre Jean绝对不会。。。我知道他想用PHP打印javascript代码。这是可能的,也很容易做到。但事实上,如果他想做相反的事情(javascript-var到php),那就行不通了……谢谢。我有一些想法我会试试。谢谢你的全面回答。不用担心。如果您觉得它很有价值,如果您验证它,我将不胜感激:)
$variable1 = $_GET['variable1']; // or POST if you're using post
$variable2 = $_GET['variable2'];
echo $variable1 . " " . $variable2; // Concatenates as "Hello world!" and prints it out.
//The result of the PHP file is sent back to Javascript when it's done.
<script type="text/javascript">
jQuery("document").ready(function(){
var $ = jQuery
$("form").submit(function(){
var data = "";
data = $(this).serialize() + "&" + $.param(data);
var prod_id_one = $('#prod1').val();
var prod_id_two = $('#prod2').val();
var prod_id_three = $('#prod3').val();
var prod_id_four = $('#prod4').val();
$.ajax({
type: "GET",
url: "my_ajax_url_here",
data: data,
success: function(data){
window.location = "price-calculator?width="+ $('#wpti-product-x').val() + "&height=" + $('#wpti-product-y').val() + "&id1=" + prod_id_one + "&id2=" + prod_id_two + "&id3=" + prod_id_three + "&id4=" + prod_id_four;
}
});
return false;
});
});
</script>