隐藏形式的javascript变量到另一个PHP脚本

时间:2014-01-23 15:43:17

标签: javascript php

我将隐藏表单中的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

4 个答案:

答案 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)
);