0

我只想问为什么在从 MySQL 获取数据并尝试将其值放在文本字段上之后:

$contractorx = $row['Contractor'];

$contractorx的值是正确的“Jose Amadeo Alonzo”。但是当我尝试使用此代码在 HTML 文本字段中显示它时:

echo "<p>Contractor: <input type=\"text\" name=\"mdu\" readonly value=$contractorx></p>";

字段上显示的文字只有“何塞”。任何人都可以帮助确定为什么会发生这种情况以及如何解决它?

4

5 回答 5

4

因为结果看起来像这样:

<input type="text" name="mdu" readonly value=Foo Bar Baz>

该属性value具有单个值Foo,然后是另外两个属性BarBaz。如果它本身包含引号,则需要正确使用引号和HTML 转义值:

printf('<input type="text" name="mdu" readonly value="%s">',
       htmlspecialchars($contractorx, ENT_COMPAT));

然后结果将正确地看起来像:

<input type="text" name="mdu" readonly value="Foo Bar Baz">
于 2013-05-27T05:55:25.633 回答
3

将引号添加到“值”

value=\"$contractorx\"
于 2013-05-27T05:54:16.347 回答
2

使用htmlspecialchars()

$contractorx = htmlspecialchars($row['Contractor']);

不要忘记引号:

echo "<p>Contractor: <input type=\"text\" name=\"mdu\" readonly value=\"$contractorx\"></p>";

或者使用单引号:

echo '<p>Contractor: <input type="text" name="mdu" readonly value="'.$contractorx.'"></p>';
于 2013-05-27T06:02:12.970 回答
0
echo sprintf("<p>Contractor: <input type='text' name='mdu' readonly value='%s' /></p>",  $contractorx);
于 2013-05-27T05:54:25.053 回答
0
echo '<p>Contractor: <input type="text" name="mdu" readonly value="'.$contractorx.'"</p>';
于 2013-05-27T06:02:38.623 回答