PHP语法输出错误的字符串[关闭]

echo "<td><a href='#'>Edit</a> | <a href='javascript:delpost('".$cat2['id']."','".$cat2['name']."')'>Delete</a></td>";

This PHP code will output this:

<a href="javascript:delpost(" 85','a)'>Delete</a>

But I want this:

<a href="javascript:delpost('85','a')">Delete</a>

What's wrong with my code?

You have mixed up the quotes. Try this:

echo '<td><a href="#">Edit</a> | <a href="javascript:delpost(\'' . $cat2['id'] . '\',\'' . $cat2['name'] . '\')">Delete</a></td>';

See output here: https://3v4l.org/qpeM6.

Note: this code assumes id is an integer or a string without any leading spaces, and name should be a string without leading spaces. If there are spaces in the values, you can wrap the values like this trim($cat2['id']).

You could use do this. Use single quotes instead of double quotes, escaping out the others.

 echo '<td><a href=\'#\'>Edit</a> | <a href="javascript:delpost(\''.$test1.'\',\''.$test1.'\')">Delete</a></td>';