SQL WHERE条件取决于表单输入字段

时间:2018-08-11 10:26:02

标签: php sql ajax

我有一个表单,用户可以从下拉菜单中选择一个类别,现在,我还有另一个下拉字段,提供了项目的子类别。

现在,我希望第二个字段仅显示那些选项,这取决于类别字段的输入。

例如

var ix = 1;
Qualtrics.SurveyEngine.getEmbeddedData('V'+ix); <-- this works
"${e://Field/V"+ix+"}"; <-- this doesn't work

如果解决方法是笔记本电脑,那么我希望sql像这样

<label>Category*</label>
<?php
$sql = "select * from category";
$stmt = $conn->prepare ( $sql );
$result = $stmt->execute();
echo '<select class="custom-select form-control" name="cat" id="cat" 
onChange="getinf(this.value)" required>';
echo '<option value="">'.'</option>';
foreach($stmt as $row){
echo '<option value ="'.$row['cat'].'">'.$row['cat'].'</option>';
}
$test=$row['cat'];
echo '</select>';
?>

因此其他下拉列表将仅显示笔记本电脑名称

填写表格时我想要的所有这些

1 个答案:

答案 0 :(得分:0)

您可以通过AJAX请求完成此操作。获取已选择的当前选项值,并发出AJAX请求以填充项目的子类别。通过传递<select id="cat">的当前选定值,这是可能的。在populate_subcategory.php内,您将运行一个SQL查询,该查询返回所有可能的子类别,但带有AJAX中的过帐值。

主要php:

<label>Category*</label>
<?php
$sql = "select * from category";
$stmt = $conn->prepare ( $sql );
$result = $stmt->execute();
echo '<select class="custom-select form-control" name="cat" id="cat" 
onChange="getinf(this.value)" required>';
echo '<option value="">'.'</option>';
foreach($stmt as $row){
echo '<option value ="'.$row['cat'].'">'.$row['cat'].'</option>';
}
$test=$row['cat'];
echo '</select>';

<select name="subcat" id="subcat">
</select>

?>

AJAX脚本

$('#cat').change(function(){
    $.ajax({
        url: "populate_subcategory.php",
        data: { "value": $("#cat").val() },
        type: "post",
        dataType: 'json',
        success: function(response){
           $('#subcat').empty();
           $.each(response,function(value) {
           $("#subcat").append('<option value=' + value + '>' + value +'</option>');
        });
       }
    });
});

populate_subcategory.php:

// Your Passed Value from AJAX
$value = $_POST['value'];

$data = array();

$sql = "select * from store where cat = '$value'";

$stmt = $conn->prepare ( $sql );
$result = $stmt->execute();

foreach($stmt as $row){
  array_push($data, $row['subcat'];);
}

echo json_encode($data);

JQuery / AJAX库:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">