PHP文本字段值显示不完整的数据,只有1个字

时间:2013-05-27 05:52:00

标签: php html mysql

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

$contractorx = $row['Contractor'];

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

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

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

5 个答案:

答案 0 :(得分: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">

答案 1 :(得分:3)

在“值”

中添加引号
value=\"$contractorx\"

答案 2 :(得分: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>';

答案 3 :(得分:0)

echo sprintf("<p>Contractor: <input type='text' name='mdu' readonly value='%s' /></p>",  $contractorx);

答案 4 :(得分:0)

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