2017-01-01 90 views
0

我有一個問題,我不得不從一個按鈕onclick()調用一個函數。調用javascript函數錯誤

的Javascript:

function deleteFolder(elemento){ 
       var form=document.getElementById(elemento); 
       var conf=confirm("Sei sicuro di eliminare questa cartella?\nL'eliminazione sara' definitiva"); 
       if (conf === true) 
        form.submit(); 
      } 

此功能得到由PHP做了一個paramater,問題是,如果該參數裏面的一些空間,功能是不是叫..

的DeleteFolder(文件夾名) - >它的工作原理
的DeleteFolder(文件夾名稱) - >當然它不工作

從PHP我只是掃描目錄,並使用foreach()函數將它們的名稱放在多個表單中。

所以問題是: 1)如何從PHP我可以把參數調用javascript的函數與空間裏面? 2)如果我有一個名爲「文件夾的名字」的目錄,它足以把$ _POST中的addslashes繞過XSS?因爲它切斷所有未來的撇號,併成爲:

HTML

<button onclick="deleteFolder(Folder)"> 

Thanxs的任何建議,我無法找到在這個論壇已經類似的事情。

+0

你有一個標識符和一個空格嗎? – Carcigenicate

+0

你必須像'elemento =「文件夾名稱」'做一個字符串 –

+0

是@BoyWithSilverWings你是對的!那真是太簡單了,真的是男人!=)我剛剛在php中輸入了一個"參數,所以它變成了一個字符串;)) – Kiks777

回答

0

您可以將實際的文件夾名稱放在一個單獨的屬性中,如folder-name,並且在ID中包含增量數字,在您的JavaScript函數中需要進行更改後才能進行更改。

HTML

<button folder-name="Folder" onclick="deleteFolder(id)"> 

的JavaScript

function deleteFolder(elemento){ 
    var form=document.getElementById(elemento); 
    var folderName = form.getAttribute('folder-name'); 
    // then use the folderName however you want it. 
} 
+0

是的好替代太=) – Kiks777

2

我假設你正在傳遞一個字符串的DeleteFolder()方法。如果是這種情況,請使用以下代碼。

<button onclick="deleteFolder('FolderName')"> 
<button onclick="deleteFolder('Folder Name')"> 

您應該使用引號來指示您將字符串傳遞給函數。這應該可以解決你的問題。

0

感謝所有回覆! =)

我解決其添加&quot;( - >「)在PHP

第一

"<button onclick='deleteFolder(".$elem."); return false;'>Elimina</button>" 

"<button onclick='deleteFolder(&quot;".$elem."&quot;); return false;'>Elimina</button>" 

所以參數成爲一個字符串,並可以傳遞給該功能=)