0
我在通過(HTML格式表單提交)到(在PHP中回顯)中處理(通過JavaScript生成)字符串時遇到一些奇怪的行爲。代:PHP或HTML格式搞亂字符串格式化
function constructCanvasString(){
//<table> added later, when title and artist name is available.
var canvasString = '';
for (var y = 0; y < height; y++) {
canvasString += "<tr>";
for (var x = 0; x < width; x++) {
canvasString += "<td x='" + x + "' y='" + y + "' style='background-color: " + $("#" + x + "-" + y).css('background-color') + "'></td>";
}
canvasString += "</tr>";
}
canvasString += "</table>";
console.log(canvasString);
document.getElementById('canvasstring').value = canvasString;
}
console.log(canvasString);返回代碼,其中td看起來像這樣:
<td x='23' y='4' style='background-color: rgb(0, 0, 255)'></td>
<td x='24' y='4' style='background-color: transparent'></td>
該字符串被賦予一個表單字段。該形式如下:
<form id="publishform" method="POST" action="publish-canvas.php">
<input type="text" name="title" value="Title"> by
<input type="text" name="artist" value="Artist">
<input type='hidden' id="canvasstring" name='canvasstring' value=''>
<input type="submit" id="publishbutton" value="Publish">
</form>
形式信息隨後被傳遞到發佈 - canvas.php持有這樣的代碼:
<?php
$title = $_POST['title'];
$artist = $_POST['artist'];
$canvasstring = $_POST['canvasstring'];
$canvasstring = "<table id=\"" . $title . "_by_" . $artist . "\" title=\"" . $title . "_by_" . $artist . "\">" . $canvasstring;
echo $canvasstring;
?>
在該頁面中,TD的這個樣子的,搞亂了我仔細格式化:
<td transparent\'="" style="\'background-color:" y="\'0\'" x="\'2\'"></td>
<td 0)\'="" 255,="" rgb(255,="" style="\'background-color:" y="\'0\'" x="\'3\'"></td>
這是怎麼回事,我該如何阻止它?