我将隐藏表单中的javascript值发送到php脚本。这是代码。
<script type="text/javascript">
$(document).ready(function() {
$('form').submit(function(e) {
var mydata = 3;
if ($(this).is(':not([data-submit="true"])'))
{
$('form').append('<input type="hidden" name="foo" value=mydata>');
$('form').data('submit', 'true').submit();
e.preventDefault();
return false;
}
})
})
在我的php脚本中,我正在访问如下的值。
$src1= $_POST['foo'];
echo $src1;
我已将mydata
初始化为3.我希望我的php脚本中的输出为3,但我得到字符串 mydata 。
答案 0 :(得分:3)
使用此:
$('form').append('<input type="hidden" name="foo" value="'+mydata+'">');
这里mydata被认为是变量而不是String。
答案 1 :(得分:2)
您没有正确连接字符串,请尝试这种方式:
$('form').append('<input type="hidden" name="foo" value="' + mydata +'">');
答案 2 :(得分:2)
所有问题都在于您将mydata
作为字符串而不是作为变量本身传递,您需要正确连接以将值传递给值,因为它可以正常工作。
使用此代码:
<script type="text/javascript">
$(document).ready(function() {
$('form').submit(function(e) {
var mydata = 3;
if ($(this).is(':not([data-submit="true"])'))
{
$('form').append('<input type="hidden" name="foo" value="'+mydata+'">');
$('form').data('submit', 'true').submit();
e.preventDefault();
return false;
}
})
})
您现在看到,value=""
的{{1}} html属性的实际值将是<input>
而不是3
。
通过这种方式,您可以访问php页面上的"mydata"
,获取$_POST['foo'];
。
答案 3 :(得分:2)
JavaScript字符串不插入变量。它们不能 - JavaScript标识符不以符号开头,因此无法区分字符串中的变量名称和文本。
快速,肮脏和不安全的方法是拆分你的字符串并连接它:
$('form').append('<input type="hidden" name="foo" value="' + mydata + '">');
但是如果mydata
包含"
,则会失败并且如果它包含&
则可能会产生奇怪的结果,因此使用DOM(或围绕它的jQuery包装器)构建HTML。 / p>
$('form').append(
$('<input>').attr('type', 'hidden').attr('name', 'foo').attr('value', mydata)
);