Smu*_*ger 0 javascript variables jquery popupwindow window.open
我有以下脚本:
<script type="text/javascript">
function train(roww){
$.post ('getpeopleinjobs.php',{
postvarposition: form["position"+roww].value,
postvarjob: form["job"+roww].value,
postvarperson: form["person"+roww].value,
postrow: roww},
function(output){
popupWindow = window.open('trainingneeded.php?position=postvarposition&job=postvarjob&person=postvarperson','popUpWindow','height=400,width=1000,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=yes')
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
我测试了脚本,它100%工作.我的问题是我的变量,postvarposition,postvarjob和postvarperson作为文本传递到URL字符串而不是实际变量.
如何格式化线条
popupWindow = window.open('trainingneeded.php?position=postvarposition&job=postvarjob&person=postvarperson','popUpWindow','height=400,width=1000,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=yes')
Run Code Online (Sandbox Code Playgroud)
这样变量就作为变量而不是文本传递.
提前致谢.
您需要将变量连接到字符串中:
'trainingneeded.php?position=' + postvarposition + '&job=' + postvarjob + '&person=' + postvarperson
Run Code Online (Sandbox Code Playgroud)
编辑:
使用您的代码,您可以看到.post调用由3部分组成:url(getpeopleinjobs.php),要传递的参数(包含在{}中)和成功处理程序(函数).这些中的每一个都在范围上是分开的,因此它们都不能访问任何其他的.基本上,您的成功处理程序不知道"postvarposition"是什么.为了使其可见,您必须将变量置于其容器范围之外.在这种情况下,您必须从{}中删除这些项的分配,并将它们放在方法.post调用之外.
<script type="text/javascript">
function train(roww){
$.post ('getpeopleinjobs.php',{
// Because this is inside a {} these variables
// can be considered "trapped" inside this scope
postvarposition: form["position"+roww].value,
postvarjob: form["job"+roww].value,
postvarperson: form["person"+roww].value,
postrow: roww},
function(output){
popupWindow = window.open('trainingneeded.php?position=postvarposition&job=postvarjob&person=postvarperson','popUpWindow','height=400,width=1000,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=yes')
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
一个可能的解决方案是:
<script type="text/javascript">
function train(roww){
// declare them and assign them out here
var position = form["position"+roww].value;
var job = form["job"+roww].value;
var person = form["person"+roww].value;
$.post ('getpeopleinjobs.php',{
postvarposition: position,
postvarjob: job,
postvarperson: person,
postrow: roww },
function(output){
popupWindow = window.open('trainingneeded.php?position=' + position + '&job=' + job + '&person=' + person,'popUpWindow','height=400,width=1000,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=yes');
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7783 次 |
| 最近记录: |