1

PHP初学者,所以我很确定这是一个愚蠢的问题......但是,希望有人能帮助我。

我有一个 html/php 表单,它基本上动态地从数据库中提取值以进行下拉。

//HTML/PHP(原始页面)

<div style="position: relative; float: left; width:236px; margin-right: 20px;">
<div id="variablebox" style="position: relative; float: left; width:215px; border: solid #0096D6; border-width: 1px; padding: 10px;">
<H2>Step 2: Select Variable Type</H2>
<form id="var" enctype="multipart/form-data">
<span style="float: left; margin-top:8px;">
<label class="fieldlabel"><span>Variable Type:</span></label></br>
<select id="variabletype" name="variabletype" class="selectfieldshadow">
<option value="">Select</option>
<?php
$list=mysqli_query($con, 'SELECT * FROM valuelist'); 
while($row_list=mysqli_fetch_array($list)){
?>
<option value="<?php echo $row_list['valuelistid']; ?>">
    <?php echo $row_list['valuename']; ?>
</option>
<?php
}
?>
</select>
</span> 

当这个表单被提交时,它基本上是通过 AJAX 提交到 PHP 文件,然后在同一个 DIV 中将相同的表单返回到屏幕。

//PHP页面

echo "<H2>Step 2: Select Variable Type</H2>";
echo "<form id='var' enctype='multipart/form-data'>";
echo "<span style='float: left; margin-top:8px;'>";
echo "<label class='fieldlabel'><span>Variable Type:</span></label></br>";
echo "<select id='variabletype' name='variabletype' class='selectfieldshadow'>";
echo "<option value=''>Select</option>";
echo "<?php";
echo "$list=mysqli_query($con, 'SELECT * FROM valuelist');";
echo "while($row_list=mysqli_fetch_array($list)){";
echo "?>";
echo "<option value="<?php echo $row_list['valuelistid']; ?>">";
echo "<?php echo $row_list['valuename']; ?>";
echo "</select>";
echo "</span>";
echo "<span style='position: relative; float: left; display: inline-block; margin-top: 7px; font: 12px Lucida Grande,Helvetica,Arial,Verdana,sans-serif; padding-right: 60px;'>";
echo "<p>Add Value Control Screenshot:</p>";
echo "<input id='controlimage' type='file' name='controlimage'>";
echo "</span>";

我的输出不断出现错误...T_Variable this 和 Exception that...我的问题是,我要正确执行此操作吗?我的意思是,查看将内容返回到原始页面的 PHP 文件,我是否必须回显 php 标签,以便它们在返回时在原始页面上工作?IE。echo "<?php"ETC..

任何帮助将不胜感激!

4

3 回答 3

3

echo用于输出内容。正如目前所写的那样,您只是想显示 PHP 代码。要执行它,您必须按如下方式重组代码:

<!-- some HTML code -->

<?php

// display stuff

?>

<!-- continue with HTML -->
于 2013-10-18T19:57:45.307 回答
0

首先,PHP 都是在服务器端呈现的。所以这意味着在 AJAX 响应中返回 PHP 没有意义。它不会在客户端呈现。

其次,那些echo看起来也很疯狂。有几种不同的方法可以输出这样的大文本。就个人而言,我喜欢关闭 PHP 标记并编写它。所以你的第二个文件可能看起来像这样:

  // end all PHP for now
?>
  <H2>Step 2: Select Variable Type</H2>
  <form id='var' enctype='multipart/form-data'>
     <span style='float: left; margin-top:8px;'>
   ...
     <input id='controlimage' type='file' name='controlimage'>
     </span>
<?php
   // continue writing PHP here
于 2013-10-18T19:57:52.343 回答
0

发送 PHP 是胡说八道,因为 PHP 是一种服务器端语言(在服务器上而不是在客户端、浏览器上运行)。

为什么不在此脚本中运行 PHP 代码并返回结果。(只是显示它)

但是,请让我们为我们最喜​​欢的语言及其初学者感到自豪:

  • 使用 mysqli_fetch_assoc() 而不是 mysqli_fetch_array()
  • 只用一个回显做多行显示,PHP 原生支持。
  • 缩进你的代码,你会非常喜欢它的可读性。
  • 使用 jQuery,它的 AJAX 方法和自动完成小部件。有人为你完成了这项工作。;-)
于 2013-10-18T20:07:22.273 回答