使用从php / database返回的数据来创建新表单

时间:2015-06-04 17:55:55

标签: javascript php jquery mysql

我已经做过一些研究但是找不到合适的解决方案。我确信它很简单,但我可以使用一些帮助。

我正在使用HTML - > Javascript - > PHP从数据库中获取信息。 我的目标是让数据返回,但是在每行的末尾添加复选框,如果有人检查它,它会将它们添加到另一个表中。

在我的例子中,它将返回一张卡片列表,如果该人使用复选框,它会将他们检查过的每张卡片添加到"有"名单。对于我在下面提供的代码,它是一个"显示全部"所以我没有使用任何JavaScript。我直接从html到php。我想如果我能得到最简单的例子,将js添加到我的其他搜索显示中将很容易。

HTML

<fieldset>
<form action="display_all.php" method="post">
Order by: <select name="order_all" id="order_all">
  <option value="parallel">Parallel</option>
  <option value="faction">Faction</option>        
</select>   
<input type="submit" value="display all cards">
</form>
</fieldset>

PHP(节省空间我删除了一些标准代码)

$order_all = $_POST['order_all'];

// Create SQL statement
$query = "SELECT * FROM cards ORDER BY $order_all ASC";
// Execute SQL statement
if (!($result = @ mysql_query ($query, $connection)))
  showerror();
// Display results
while ($row = @ mysql_fetch_array($result)) {

  echo "<tr><td>{$row["parallel"]}</td>
<td>{$row["faction"]}</td>
<td>{$row["in_set"]}</td>
<td>{$row["card_name"]}</td>
<td>{$row["color"]}</td>
<td>{$row["number_in_set"]}</td>
<td>{$row["rarity"]}</td>
<td>{$row["sold_out"]}</td>
<td>{$row["series"]}</td>
</tr>";
}

我尝试在PHP文件末尾的while {}添加不同的东西,但我真的不知道正确的方法。基于我所看到的,人们建议在javascript中执行此操作并为其创建函数。从我的ajax调用和回调开始?我计划将我的复选框链接到每张卡的ID(存储在数据库中,但不打印)我想他们只会链接到查询插入命令。就像检查[插入命令]和表单提交一样? idk寻找一些建议,我仍然是以这种方式使用数据库的新手。

找到解决我问题的方法,好吧。 这是一堆小事。我没有添加功能,但我至少得到了复选框才能显示。

while ($row = @ mysql_fetch_array($result)) {
echo"
<tr>
<td>{$row["parallel"]}</td>
<td>{$row["faction"]}</td>
<td>{$row["in_set"]}</td>
<td>{$row["card_name"]}</td>
<td>{$row["color"]}</td>
<td>{$row["number_in_set"]}</td>
<td>{$row["rarity"]}</td>
<td>{$row["sold_out"]}</td>
<td>{$row["series"]}</td>
";
echo'<td><input type="checkbox" value="submit" id="{$row["id"]}/></td>';
echo"</tr>";
}

1 个答案:

答案 0 :(得分:0)

  1. 您的代码是SQL注入的天堂!您必须检查用户输入,至少使用mysql_real_escape_string或
  2. 进行转义
  3. 切换到更新,更好,更安全的mysqli(或PDO)界面并使用预准备语句。无论如何我推荐mysqli。 注意:在这种特殊情况下最好使用带选项的开关。
  4. 要问:你为什么不从帖子中获取复选框值然后采取行动,但我不确定你在问什么。