簡體   English   中英

隱藏形式的javascript變量到另一個php腳本

[英]javascript variable in hidden form to another php script

我正在以隱藏形式將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

用這個:

  $('form').append('<input type="hidden" name="foo" value="'+mydata+'">');

在這里,mydata被視為變量而不是String。

您沒有正確連接字符串,請嘗試以下方式:

$('form').append('<input type="hidden" name="foo" value="' + mydata +'">');

所有問題是您將mydata作為字符串而不是作為變量本身傳遞,因此需要正確連接以將Value傳遞給Value,因為它可以正常工作。

使用此代碼:

<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;
}
})
})

您現在看到, <input> value="" html屬性的實際值將是3而不是"mydata"

這樣,您將可以訪問$_POST['foo']; 在php頁面上,獲取3

JavaScript字符串不插值變量。 它們不能-JavaScript標識符不是以sigils開頭的,因此無法將字符串中的變量名與一段文本區分開。

快速,骯臟和不安全的方法是分解字符串並將其連接起來:

$('form').append('<input type="hidden" name="foo" value="' + mydata + '">');

但是,如果mydata包含" ,則失敗,並且如果包含& ,則可能會給出怪異的結果,因此請使用DOM(或圍繞該jQuery的包裝器)構建HTML。

$('form').append(
    $('<input>').attr('type', 'hidden').attr('name', 'foo').attr('value', mydata)
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM