過去兩個小時我一直在爲此苦苦掙扎,而且我無法讓它正常工作。看看下面的代碼:如何正確連接來自Javascript和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 = "/route/to/function/";
id = 19009; // I've omitted the $ sign since this var is coming from JS
var href = "' . $value . '" + id;'
然後我需要使用href
VAR的定義後右圖所示的<a>
元素的一部分。
用我上面的代碼我收到此錯誤:
Uncaught SyntaxError: Invalid or unexpected token
我能得到一些幫助,得到這個權利?
UPDATE:
這是怎樣的代碼看起來像後,我渲染頁面:函數如何$.extend
接近正常
$(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;
}
});
});
通知。 console.log(id)
確實打印了options.rowId
的值,但是此值對超鏈接沒有任何影響,因爲您可能會注意到這是值/sf/distributor/show/ + options.rowId
。
$value
中的內容是在上述情況下的普通字符串/sf/distributor/show/
。
@Carcigenicate這將呈現作爲一個Javascript代碼的視圖後,所以'ID'將有意義 – ReynierPM
從來沒有混合php與JS - 這是不好的做法,應該不惜一切代價避免。例如。你可以添加數據標籤到DOM元素來獲取你的PHP數據,並將其分配給一個JS VAR使用.. – ThisGuyHasTwoThumbs
你在哪一行越未捕獲SyntaxError –