2010-10-26 80 views
0

這個php語句可以工作,但是在引號方面,還有更可讀的表達方式嗎?使用php生成html和javascript - quote/doublequotes

$pCode = $row['SIZIP']; 
echo " <a href='#' onClick='jfFn(\"".$pCode."\");return false;' > " . $pCode . "</a>"; 
+2

如果有機會,請考慮從代碼中刪除內聯事件處理程序。 – 2010-10-26 23:01:30

+0

當然,在一些幻想世界的烏托邦中,所有佈局都在css文件中,所有腳本都在js文件中,並且表格從不用於佈局,所以您可能會擔心一個小小的內聯js片段。在現實世界中,這很好。 – Rob 2010-10-26 23:32:33

+0

@Rob - 你有一點......但在某些時候,代碼的可讀性和可維護性真的會遇到像這樣的問題。 – DVK 2010-10-27 00:16:02

回答

1

您可以使用printf()

$pCode = $row['SIZIP']; 
printf("<a href='#' onClick='jfFn(\"%s\");return false;'>%s</a>",$pCode); 

現在它更具可讀性!

0

這應該工作

$pCode = $row['SIZIP']; 
echo " <a href='#' onClick='jfFn(\"$pCode\");return false;' >$pCode</a>"; 

或本:

echo " <a href='#' onClick='jfFn(\"{$row['SIZIP']}\");return false;' >{$row['SIZIP']}</a>"; 
5

你可以使用heredoc符號:

$pCode = $row['SIZIP']; 
echo <<<EOD 
<a href='#' onClick='jfFn("$pCode");return false;' > $pCode</a> 
EOD; 

而且,考慮使用模板的東西東西它的意思是使用插入使用回聲打印HTML?你可能也已經被使用bash否則:)

<!-- your main document (non-PHP code) is here --> 
<?php $pCode = $row['SIZIP']; ?> 
<a href='#' onClick='jfFn("<?php echo '$pCode';?>");return false;' > 
<?php echo '$pCode';?></a> 

或按菲爾·布朗的評論

<?php $pCode = $row['SIZIP']; ?> 
<a href="#" onclick="jfFn('<?= htmlspecialchars($pCode) ?>'); 
        return false;"><?= htmlspecialchars($pCode) ?></a> 

我認爲這可以通過美化了一下:

<?php $pCode = htmlspecialchars($row['SIZIP']); ?> 
<a href="#" onclick="jfFn('<?= $pCode ?>'); return false;"><?= $pCode ?></a> 
+0

對於編輯+1 ...使用模板而不是回聲! – 2010-10-26 23:32:23

+0

對於第二種方法(模板)+1,除非您的語法有點偏離。啓用短打開標籤也使模板看起來更好,例如'' – Phil 2010-10-26 23:34:21

+0

re:prettified編輯 - 只有當'$ pCode'純粹是隻查看變量時纔會這樣做 – Phil 2010-10-26 23:56:36

0

你可以使用{}用雙引號(僅限!)回顯時,如:

$pCode = $row['SIZIP']; 
echo "<a href='#' onClick='jfFn(\"{$pCode}\"); return false;'>{$pCode}</a>";