我正在将HTML表单中的值发布到php文件中。在我当前的代码中,我正在提交多个post值,并且必须检查每个post变量(如果已设置)的值。
我想知道是否有更有效的方法可以做到这一点。一个要求是将这些值按顺序插入。
HTML表单:
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) {
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
}
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) {
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
}
exit(0);
}
SQL表:
<form>
<input type=text name=exercise1> <input type=text name=sets1>
<input type=text name=exercise2> <input type=text name=sets2>
<input type=text name=exercise3> <input type=text name=sets3>
<input type=text name=exercise4> <input type=text name=sets4>
...
</form>
我尝试了下一个代码:
id autoincrement
exercise varchar(200)
sets varchar(10)
答案 0 :(得分:2)
默认的<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Canvas Grid.Column="1" Background="Green" Width="{Binding Path=ActualWidth, ElementName=text}">
<TextBlock Text="asdfsdf" FontSize="23" x:Name="text"/>
</Canvas>
</Grid>
方法是form
,因此尝试读取GET
时可能什么也没得到。要修复它,您需要更改此内容:
$_POST
对此:
<form>
为了简化操作,您应该重新定义表单,使其为数组:
<form method="post">
这将保持代码中的顺序。某些浏览器没有发送空值,因此最好对它们进行手动排序(这样,您将知道是否没有答案或其他答案):
<input type="text" name="exercise[]"> <input type="text" name="sets[]">
<input type="text" name="exercise[]"> <input type="text" name="sets[]">
<input type="text" name="exercise[]"> <input type="text" name="sets[]">
<input type="text" name="exercise[]"> <input type="text" name="sets[]">
现在您可以像这样在PHP中进行迭代:
<input type="text" name="exercise[1]"> <input type="text" name="sets[1]">
<input type="text" name="exercise[2]"> <input type="text" name="sets[2]">
<input type="text" name="exercise[3]"> <input type="text" name="sets[3]">
<input type="text" name="exercise[4]"> <input type="text" name="sets[4]">
请注意,您的SQL查询可能容易受到注入攻击!
您应该使用类似<?php
foreach($_POST["exercise"] as $id => $exercise){
echo "EXERCISE $id: " . $exercise . ", SETS $id: " . $_POST["sets"][$id] . "<br />";
}
?>
(或类似内容;取决于您使用的是哪个lib来连接数据库),而不是原始查询:
mysqli_real_escape_string()