我有一张表格,在那里我可以得到一些不同的信息。但是,我有一个带有多个选项的Select,我希望能够在1或0/ true或false中将其发送到数据库。但这是行不通的。到目前为止,这是我的代码:
<select name="multipleSelect[]" multiple>
<option value="" disabled selected>Choose your option</option>
<option name="esea" value="esea">ESEA</option>
<option name="faceit" value="faceit">FaceIT</option>
<option name="matchmaking" value="matchmaking">Matchmaking</option>
</select>
<label>What are you looking to play?</label>这是我的php:
$esea = 0;
$faceit = 0;
$matchmaking = 0;
foreach ( $_POST['multipleSelect'] as $value ) {
if ( $value == 'esea' ) { $esea = 1; }
if ( $value == 'faceit' ) { $faceit= 1; }
if ( $value == 'matchmaking' ) { $matchmaking= 1; }
}
// Sätt in dataN
$sql = "INSERT INTO users ( steamid, profilename, profileurl, avatar, region, age, ranks, esea, faceit, matchmaking, textarea1 ) VALUES (
'{$mysqli->real_escape_string($_POST['steamid'])}',
'{$mysqli->real_escape_string($_POST['profilename'])}',
'{$mysqli->real_escape_string($_POST['profileurl'])}',
'{$mysqli->real_escape_string($_POST['avatar'])}',
'{$mysqli->real_escape_string($_POST['region'])}',
'{$mysqli->real_escape_string($_POST['age'])}',
'{$mysqli->real_escape_string($_POST['ranks'])}',
$esea,
$faceit,
$matchmaking',
'{$mysqli->real_escape_string($_POST['textarea1'])}')";
$insert = $mysqli->query($sql);我知道这个代码不起作用,但我不知道该怎么做才能使它工作。我不打算发送一个1或0取决于选择或不选择。
发布于 2016-04-19 20:36:28
多个可选择下拉列表的<select>需要是一个数组,由name="NameThatMakesSense[]"定义。
<select name="NameThatMakesSense[]" multiple>然后,这将返回一个名为$_POST‘’NameThatMakesSense‘的字段,它本身是一个数组,包含一个或多个值,指示在下拉列表中选择了哪些项。来自value=""标记的<option>属性
然后,您需要对NameThatMakesSense数组进行预处理,以获取实际从多选择下拉列表中选择了哪些值。
$esea = 0;
$esea = 0;
$esea = 0;
foreach ( $_POST['NameThatMakesSense'] as $value ) {
if ( $value == 'esea' ) { $esea = 1; }
if ( $value == 'faceit' ) { $faceit= 1; }
if ( $value == 'matchmaking' ) { $matchmaking= 1; }
}
$sql = "INSERT INTO users
( profilename, profileurl, avatar, region,
age, esea, faceit, matchmaking, textarea1 )
VALUES (
'{$mysqli->real_escape_string($_POST['profilename'])}',
'{$mysqli->real_escape_string($_POST['profileurl'])}',
'{$mysqli->real_escape_string($_POST['avatar'])}',
'{$mysqli->real_escape_string($_POST['region'])}',
'{$mysqli->real_escape_string($_POST['age'])}',
'{$mysqli->real_escape_string($_POST['ranks'])}',
$esea,
$faceit,
$matchmaking,
'{$mysqli->real_escape_string($_POST['textarea1'])}')";发布于 2016-04-19 20:29:02
您的select html标记需要一个name属性,这样表单onSubmit才能发送到“后端”。
就像这样:
<select name="enterNameThatMakesSense" multiple> // <----- HERE
<option value="" disabled selected>Choose your option</option>
<option name="esea" value="1">ESEA</option>
<option name="faceit" value="1">FaceIT</option>
<option name="matchmaking" value="1">Matchmaking</option>
</select>
<label>What are you looking to play?</label>https://stackoverflow.com/questions/36728701
复制相似问题