2014-07-04 90 views
0

有人能告訴我哪裏出了錯代碼?點擊鏈接時沒有任何事情發生。首先,我有PHP用戶與以下鏈接生物進行編輯(記住這個腳本是在被納入主要的外部文件)...使用Javascript功能更改HTML內容

<?php 

/* bio was retrieved earlier... */ 

echo '<div id="bio"> 
<p>'.$row["bio"].'<br> 
<a href="javascript:editBio(\''.$row["bio"].'\');">Edit</a></p> 
</div>'; 

?> 

然後,我在有一個JavaScript函數我想更換一個形式的股利主文件...

function editBio(bio) { 

    document.getElementById("bio").innerHTML = ' 
    <form action="profile.editbio.php" method="post"> 
    <textarea cols="40" rows="10" name="bio" id="bio" maxlength="275">'+ bio +'</textarea><br> 
    <input type="submit" value="Update"></form> 
    '; 

} 

我要的是爲用戶單擊「編輯」鏈接,並有自己的生物瞬間變成一個textarea在那裏他們可以編輯。

當檢查我得到這個錯誤控制檯:

Uncaught SyntaxError: Unexpected end of input 

任何幫助表示讚賞,如果你能提供更短的,不太複雜的代碼(雖然我不認爲你可以這樣做),這將是偉大的!

+0

所以......它不*工作? – AstroCB

+0

@AstroCB - 編輯以包括髮生的事情。 – Locke

+0

當你試圖運行它時,你碰巧檢查了控制檯嗎? – jsickles

回答

0

我敢肯定,這是因爲在你的HTML換行符的:當您的線路脫落,它打破到下一行,而不是溢出。

它應該是這樣的:

document.getElementById("bio").innerHTML = '<form action="profile.editbio.php" method="post"><textarea cols="40" rows="10" name="bio" id="bio" maxlength="275">'+ bio +'</textarea><br><input type="submit" value="Update"></form>'; 

括號不通過換行攜帶。

而且,jsickles所提到的,此行是想給你一個錯誤:

<a href="javascript:editBio('.$row["bio"].');">Edit</a> 

你需要躲避內部括號:

<a href="javascript:editBio('.$row[\'bio\'].');">Edit</a> 

Demo

+0

謝謝,你的回答與@jsickles的結合是解決了我的問題。 – Locke

+0

@Locke我很高興它有幫助。 – AstroCB

+0

回顯字符串'Edit''沒有任何問題。 '$ row'是一個php變量。 – mclaassen

2

新線值必須被連接在一起,就像這樣:

function editBio(bio) { 

    document.getElementById("bio").innerHTML = '<form action="profile.editbio.php" method="post">' 
               +'<textarea cols="40" rows="10" name="bio" id="bio" maxlength="275">'+ bio +'</textarea><br>' 
               +'<input type="submit" value="Update"></form>'; 

} 
+0

並置不是必需的:只需將它全部打開一條線。 – AstroCB

+0

但在您的代碼示例中,您的代碼似乎處於新行。所以你應該做串聯。 – michikot

+0

沒關係;它會以任何方式工作,但將它們連接起來是不必要的工作。 – AstroCB

-2

這是不是代碼...

javascript:editBio('.$row["bio"].'); 

需要我的 'a' onclick事件,而不是在href atrribute?

例如。

<a href="javascript:editBio('.$row["bio"].');">Edit</a> 

應該

<a href="" onclick="editBio('.$row["bio"].');">Edit</a> 
+0

這些都做同樣的事情。 – AstroCB

0

最大的問題是你沒有在函數調用參數周圍使用引號。

<a href="javascript:editBio(\''.$row["bio"].'\');">Edit</a> 
+0

現在styntax錯誤是這樣的:'SyntaxError:意外的輸入結束' – Locke

+0

@Locke請更新您的問題到目前爲止您所做的確切更改 - 以及「生物」字段中的值是什麼 – jsickles

+0

已編輯。 ... – Locke