使用一个html选项向mysql数据库提交多个值

时间:2010-12-23 18:38:57

标签: php mysql html

我在表格的这一部分遇到了麻烦。我不太确定会出现什么问题,所以我想我会看到这里是否有人可以给我一个提示。

我的代码试图仅使用一个选项来确定用户的性别以及他们的性取向。我很确定这是可能的,但我认为我的语法略有不同。

<select name="gender" title="gender" class="dropdown nextPanel <?=( $this->get('error_gender') === true ) ? 'error' : ''?>">
    <option value=""><?php echo $this->localization->get( 'form1.choose' ); ?></option><!-- Text: - - Choose - - -->
    <option value="M" <?=( $_POST['gender']['orientation'] == 'M' . 'F')? 'selected="selected"' : ''?>>Man Seeking a Woman</option>
    <option value="F" <?=( $_POST['gender']['orientation'] == 'F' . 'M')? 'selected="selected"' : ''?>>Woman Seeking a Man</option>
    <option value="M" <?=( $_POST['gender']['orientation'] == 'M' . 'M')? 'selected="selected"' : ''?>>Man Seeking a Man</option>
    <option value="F" <?=( $_POST['gender']['orientation'] == 'F' . 'F')? 'selected="selected"' : ''?>>Woman Seeking a Woman</option>
</select>

我一直在抓文档,但我想我忽略了一些非常小而且愚蠢的东西。我知道这个人会变得容易到那里的人!感谢您的任何提示!

4 个答案:

答案 0 :(得分:1)

<select name="gender" title="gender" class="dropdown nextPanel <?=( $this->get('error_gender') === true ) ? 'error' : ''?>">
    <option value=""><?php echo $this->localization->get( 'form1.choose' ); ?></option><!-- Text: - - Choose - - -->
    <option value="MF" <?=( $_POST['gender']['orientation'] == 'M' . 'F')? 'selected="selected"' : ''?>>Man Seeking a Woman</option>
    <option value="FM" <?=( $_POST['gender']['orientation'] == 'F' . 'M')? 'selected="selected"' : ''?>>Woman Seeking a Man</option>
    <option value="MM" <?=( $_POST['gender']['orientation'] == 'M' . 'M')? 'selected="selected"' : ''?>>Man Seeking a Man</option>
    <option value="FF" <?=( $_POST['gender']['orientation'] == 'F' . 'F')? 'selected="selected"' : ''?>>Woman Seeking a Woman</option>
</select>

答案 1 :(得分:1)

我认为从$ _POST中检索值时不需要'orientation'索引。试试这个:

<select name="gender" title="gender" class="dropdown nextPanel <?=( $this->get('error_gender') === true ) ? 'error' : ''?>">     
    <option value=""><?php echo $this->localization->get( 'form1.choose' ); ?></option><!-- Text: - - Choose - - -->     
    <option value="M" <?=( $_POST['gender'] == 'M' . 'F')? 'selected="selected"' : ''?>>Man Seeking a Woman</option>     
    <option value="F" <?=( $_POST['gender'] == 'F' . 'M')? 'selected="selected"' : ''?>>Woman Seeking a Man</option>     
    <option value="M" <?=( $_POST['gender'] == 'M' . 'M')? 'selected="selected"' : ''?>>Man Seeking a Man</option>     
    <option value="F" <?=( $_POST['gender'] == 'F' . 'F')? 'selected="selected"' : ''?>>Woman Seeking a Woman</option> 
</select> 

我认为此页面已发布回自己。

答案 2 :(得分:0)

当此字段为POSTED时,它将显示为:

$_POST['gender'] = 'M'

-OR -

$_POST['gender'] = 'F'

您无法从有限的信息中了解他们的偏好。

此外,术语$_POST['gender']['orientation']未映射到有效的数组元素,因为输入字段的名称为"gender",而不是"gender[orientation]"

您应该为<option>代码提供以下值:

<option value="MF">
<option value="FM">
<option value="MM">
<option value="FF">

然后当您在服务器上接收它时,您可以使用数组表示法:

if($_POST['gender'][0] == 'M')
   // gender is male

if($_POST['gender'][1] == 'F')
   // seeking is female

这有帮助吗?

答案 3 :(得分:0)

这应该有效

<select name="gender" title="gender" class="dropdown nextPanel <?=( $this->get('error_gender') === true ) ? 'error' : ''?>">
    <option value=""><?php echo $this->localization->get( 'form1.choose' ); ?></option><!-- Text: - - Choose - - -->
    <option value="MF" <?=( $_POST['gender'] == 'MF')? 'selected="selected"' : ''?>>Man Seeking a Woman</option>
    <option value="FM" <?=( $_POST['gender'] == 'FM')? 'selected="selected"' : ''?>>Woman Seeking a Man</option>
    <option value="MM" <?=( $_POST['gender'] == 'MM')? 'selected="selected"' : ''?>>Man Seeking a Man</option>
    <option value="FF" <?=( $_POST['gender'] == 'FF')? 'selected="selected"' : ''?>>Woman Seeking a Woman</option>
</select>