我有2个js文件,我想将2个变量从file1.js传递给file2.js。我到目前为止所做的是使用以下方法将文件中的这两个变量从file1.js发送到带有ajax的第三个文件file3.php中:
$('#replace').click(function(){
var replacement = cur;
var replacement2 = cur2;
$.ajax({
url: DOMAIN_NAME+"file3.php",
type: "post",
data: {replacement: replacement, replacement2 : replacement2},
success:function(data){
console.log(data);
},
error:function(){
alert('Something Went Wrong');
},
});
});
在我的file3.php中:
if(isset($_POST['replacement']) && isset($_POST['replacement2']){
$a = $_POST['replacement'];
$b = $_POST['replacement2'];
}
<input type="hidden" id="af" value="<?=$a;?>">
<input type="hidden" id="bf" value="<?=$b;?>">
在我的File2.js中:
var a = $('#af').val();
var b = $('#bf').val();
我可以看到,在网络中,ajax传递状态为200的变量,但在php文件中,我的变量没有通过。所以file2.js无法获取值。我做错了什么?
答案 0 :(得分:0)
让我们说你有这个简单的形式:
<form id="my_form">
<input type="text" name="a_field" id="a_field">
<input type="text" name="b_field" id="b_field">
<button id="submit_form">Submit</button>
</form>
此表单的jquery脚本文件(#1)可以命名为&#34; script1.js&#34;并且看起来像那样:
$(document).ready(function(){
$('#submit_form').on('click').function(e){
e.preventDefault();
var formData = $('#my_form').serialize();
$.ajax({
type: 'POST',
url: 'my_ajax.php',
data: formData
});
});
});
请注意,我将表单序列化为更快...(如果您希望可以指定要传递给ajax的变量)
以下是my_ajax.php的一个示例:
<?php
session_start();
if(isset($_SESSION["a_var"])){unset($_SESSION["a_var"]);}
if(isset($_SESSION["b_var"])){unset($_SESSION["b_var"]);}
if(isset($_POST["a_field"])){$a_field=htmlspecialchars($_POST["a_field"]);}else{$a_field=""; exit();}
if(isset($_POST["b_field"])){$b_field=htmlspecialchars($_POST["b_field"]);}else{$b_field=""; exit();}
$_SESSION["a_var"] = $a_field;
$_SESSION["b_var"] = $b_field;
?>
使用上面的文件,我们根据从html表单中获取的输入字段值创建了两个php会话。
现在&#34;棘手&#34;部分:
你的SECOND js文件(#2)必须有一个扩展名.php而不是.js
然而,如果代码包含在&#34;脚本&#34;中,它将执行任何javascript代码。标签
让我们命名该文件&#34; script2.js.php&#34; - 可以是这样的:
<?php
session_start();
if(isset($_SESSION["a_var"])){$value_a = $_SESSION["a_var"];}else{$value_a="";}
if(isset($_SESSION["b_var"])){$value_b = $_SESSION["b_var"];}else{$value_b="";}
?>
<script>/*...include jquery here (if necessary)...*/</script>
<script>
$(document).ready(function(){
//jquery is NOT necessary for my example
//I just included it in case you need to do other tasks...
var valueA = '<?php echo $value_a; ?>';
var valueB = '<?php echo $value_b; ?>';
//Now you can do anything with these values... For example, you could alert them:
alert('Value A: '+valueA+' - Value B: '+valueB);
});
</script>
最后一件事:
要在您的html页面中包含js文件,您可以:
<script src="http://www.example.com/scripts/yourscript.js"></script>
包括&#34; js.php&#34;文件你必须使用php&#34; include&#34;功能:
这就是我建议使用php会话将变量从一个js文件传递到另一个js文件的方法!
我的例子非常基本&#34;并且可以采取很多&#34;抛光&#34;关于功能和安全性的工作......但是应该让你知道如何开始......
希望能帮助你和/或其他人......