簡體   English   中英

如何正確連接來自Javascript和PHP的值?

[英]How to properly concatenate values coming from Javascript and PHP?

在過去的兩個小時中,我一直在為此苦苦掙扎,但我無法使其正常工作。 看一下下面的代碼:

$js = '$.extend($.fn.fmatter , {
            userActions : function(cellvalue, options, rowData, addOrEdit) {
            var data = cellvalue.split("|");
            var id = options.rowId;
            var actions = "";';

foreach ($editorActions as $linkType => $value) {
    switch ($linkType) {
        case 'view':
            $js .= "if(data[1] == 1) {
                        actions += \"<a class='actionimage' href='" . $value . " + options.rowId' title='" . $this->translate->_e('View') . "' onClick='load_start();'><img src='/images/icons/16x16/document_view.png' width='16' height='16' alt='' /></a>\";
                    }";
    }

    break;
}

如您所見, id是來自Javascript的值,而$value是來自PHP的$value 這個想法是獲得一個超鏈接,例如:

$value = "/route/to/function/";
id = 19009; // I've omitted the $ sign since this var is coming from JS

var href = "' . $value . '" + id;'

然后,我需要在定義之后立即將href var用作<a>元素的一部分。

在上面的代碼中,我收到此錯誤:

未捕獲的SyntaxError:無效或意外的令牌

我可以得到一些幫助來解決這個問題嗎?

更新:

這是呈現頁面后代碼的樣子:

$(function () {
    $.extend($.fn.fmatter, {
        userActions: function (cellvalue, options, rowdata) {
            var data = cellvalue.split('|');
            var id = options.rowId;
            var actions = '';

            console.log(id);
            if (data[1] == 1) {
                actions += "<a class='actionimage' href='/sf/distributor/show/ + options.rowId' title='View' onClick='load_start();'><img src='/images/icons/16x16/document_view.png' width='16' height='16' alt='' /></a>";
            }

            return actions;
        }
    });
});

注意函數$.extend如何正確關閉。 console.log(id)確實打印了options.rowId的值,但是此值對超鏈接沒有任何影響,因為您可能會注意到,這是/sf/distributor/show/ + options.rowId

/sf/distributor/show/上面的情況下, $value包含一個普通字符串。

您丟失了雙引號,並以結尾結尾並重新打開options.rowId+中的字符串:

actions += \"<a class='actionimage' href='" . $value . " + options.rowId'

它應該是:

actions += \"<a class='actionimage' href='" . $value . "\" + options.rowId + \"'

在這里,您缺少“”,因此您將options.rowId添加為字符串文本。

href='/sf/distributor/show/" + options.rowId + "' 

暫無
暫無

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

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