0

これは私のPHPコード全体です:

<?php if(empty($_POST['selid']))
        {echo "no value selected";  }
        else 
        {
            $con = mysql_connect("localhost","root","");
            if(mysql_select_db("cdcol", $con))
                {
                    $sql= "SELECT * FROM products where Id = '$_POST[selid]'";

                    if($result=mysql_query($sql))
                    {   

                        echo "<form name=\"updaterow\" method=\"post\" action=\"dbtest.php\">";
                        while($row = mysql_fetch_array($result))
                        { 
                        echo "Id :<input type=\"text\" name=\"ppId\" value=".$row['Id']." READONLY></input></br>";
                        echo "Name :<input type=\"text\" name=\"pName\" value=".$row['Name']."></input></br>";
                        echo "Description :<input type=\"text\" name=\"pDesc\" value=".$row['Description']."></input></br>";
                        echo "Unit Price :<input type=\"text\" name=\"pUP\" value=".$row['UnitPrice']."></input></br>";
                        echo "<input type=\"hidden\" name=\"mode\" value=\"Update\"/>";

                        }
                        echo "<input type=\"submit\" value=\"Update\">";
                        echo "</form>";
                    }
                    else {echo "Query ERROR";}
                }
        }
?>

ここでの問題は、....使用しているデータベースから取得している値mysql_fetch_array($result) が次のような場合:(たとえば、説明は:)「私の製品」です

それから; 入力ボックスでは 、「スペース」(空白スペース) の後の単語 (または数字) の「my」のみが表示されますが、表示されませんか? 上記のような入力ボックスは、2 つ以上の単語 (空白で区切られた) でデータを表示できますか?

4

2 に答える 2

1

HTML パーサーは、 <input value=abc def...> が value= を意味することを知る方法がありませんabc def。値を持つ属性valueと値のない属性の 2 つの属性として解析する必要があります。abcdef

<input value="abc def" ...> のように、値を引用符で囲む必要が
あります。また、値内で " を " としてエンコードする必要があります。そうしないと、html パーサーが再び混乱する可能性があります。 value="abc"def" の 2 番目の " は区切り文字ではなく、コンテンツの一部であることを認識しています。これにはhtmspecialchars()を使用できます。

例えば

while($row = mysql_fetch_array($result))
{
  printf('
    Id :<input type="text" name="ppId" value="%s" READONLY></input><br>
    Name :<input type="text" name="pName" value="%s"></input><br>
    Description :<input type="text" name="pDesc" value="%s"></input><br>
    Unit Price :<input type="text" name="pUP" value="%s"></input><br>";
    <input type="hidden" name="mode" value="Update"/>',
    htmlspecialchars($row['Id']),
    htmlspecialchars($row['Name']),
    htmlspecialchars($row['Description']),
    htmlspecialchars($row['UnitPrice'])
  );
}
于 2010-03-18T09:36:43.973 に答える
1
echo "Unit Price :<input type=\"text\" name=\"pUP\" value=\"".$row['UnitPrice']."\"></input></br>";

引用符で囲む必要がありvalueます。

于 2010-03-18T09:36:47.107 に答える