2012-06-15 129 views
0

我想使这种形式:与PHP变量HTML表单

echo '<form method="post" action="ratinghandler.php" style="width: 250px"> 
       <input type="hidden" name="reference" value= "$id"/> 
       <select name="rating" style="width: 115px"> 
       <option> Rate </option> 
       <option>1 Bad</option> 
       <option>2</option> 
       <option>3</option> 
       <option>4</option> 
       <option>5 Average</option> 
       <option>6</option> 
       <option>7</option> 
       <option>8</option> 
       <option>9</option> 
       <option value="10">10 Best</option> 
       </select><input name="submit1" type="submit" value="Submit Rating" /></form>'; 

值得注意的部分是隐藏的药水。 echo $ _POST [reference]的处理程序页面中的输出是简单的$ id(与存储在$ id内的值相反)。

我试图改变该行改为:

<input type="hidden" name="reference" value= "<? echo $id ?>"/> 

我认为我做的事情很愚蠢的 - 但我搜查,并没有看到什么,直接解决这个,所以我认为这将是好问。

+0

两个词:变量代换。当您使用单引号作为分隔符时,您没有它。我建议使用HEREDOC语法; [这个页面](http://php.net/manual/en/language.types.string.php)肯定会有帮助。 – raina77ow

回答

2

使用此语法:

<input type="hidden" name="reference" value= "'. $id .'"/> 

当您使用单引号回音,你不能插变量。由于字符串中有太多的双引号,所以使用了单引号。您可以使用点运算符打破字符串并连接变量。您也可以使用逗号运算符来避免字符串连接。

如果您正在使用双引号,你可以去那里的$id,它会被插入,但随后你就必须在字符串中逃避所有的双引号。

最后,你可以使用一个HEREDOC允许双引号和插补:

echo <<<EOF 
<form method="post" action="ratinghandler.php" style="width: 250px"> 
      <input type="hidden" name="reference" value= "$id"/> 
      <select name="rating" style="width: 115px"> 
      <option> Rate </option> 
      <option>1 Bad</option> 
      <option>2</option> 
      <option>3</option> 
      <option>4</option> 
      <option>5 Average</option> 
      <option>6</option> 
      <option>7</option> 
      <option>8</option> 
      <option>9</option> 
      <option value="10">10 Best</option> 
      </select><input name="submit1" type="submit" value="Submit Rating" />  
</form> 
EOF; 
+1

+1但更好的是,将这些'.'点改为'''逗号,避免字符串连接:)当输出整个事物时,不需要连接字符串。你可以一个接一个地输出它们。 – Paulpro

+0

很确定''needs'<?php' and'?>'或者您只需添加一个字符串 – Sir