自动jquery重新提交适用于表单中的硬编码值,但不适用于PHP变量

时间:2017-05-05 09:16:28

标签: php jquery mysql forms variables

我用过

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
当用户选择通过表单中的选项(在本例中为“material”)设置限制时,

自动重新加载页面。 这适用于硬编码选项,但也不适用于通过PHP从mySQL数据库中提取的选项。所以:

<form id="material" class="floatleft" method="POST" action="detail.php?material=">
<select name="material" id="material" onchange="this.form.submit()">

适用于硬编码的“亚麻布”

echo '<option value="linen" ';
if ($material == "linen")
 echo 'selected="selected"';
echo '>Linen</option>';

但从PHP查询中检索时没有'亚麻'

$i = 0;
while ($row_material = mysqli_fetch_array($result_material))
 {
 echo '<option value="'.$material.'" ';
 if ($material == $row_material['material'])
   echo 'selected="selected"';
 echo '>'.$row_material['material'].'</option>';
 $i++;
 }

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

将此更改为您的代码。我使用了ternary运算符来使代码更具可读性

    $array = array(
        array('material' => 'linen'),
        array('material' => 'test'),
        array('material' => 'test2'),
        array('material' => 'test3'),
    );
    echo '<select>';

    $material = 'test2';
    foreach($array as $row_material)
    {
        $selected = ($material == $row_material['material']) ? 'selected=true' : ''; 
         echo '<option value="'. $row_material['material'] .'" ' .$selected .' >' .  $row_material['material'].'</option>';
         $i++;  
    }
    echo '</select>';

答案 1 :(得分:0)

关闭最后一个回声中的<option>,而不是第一回声:

echo '>'.$row_material['material'].'</option>';