Ajax PHP选择选项

时间:2018-07-02 07:47:54

标签: php ajax

我完全陷入我的代码中。我希望我从option = fields.Boolean(string='option') selected_option = fields.Boolean(compute='check_value', string='Selected') @api.multi def check_value(self): for result in self: if result.option == True: result.selected_option = True result.selected_option = False 中选择一些选项 这向我展示了我选择的内容
我有一个带有某些属性的函数。
功能如下:

<select>

这是选择功能:

class Data {
  public function example() {
    $values = array(
        'one' => array(
            'name' => 'Name One',
            'atts'   => array(
                'style' => array(
                    'type'  => '123'
                ),
                'something' => array(
                    'type'  => 'wow'
                ),
            ),
        ),
        'two' => array(
            'name'  => 'Name Two',
            'atts'   => array(
                'style' => array(
                    'type'  => 'select'
                ),
                'something' => array(
                    'type'  => 'wow'
                ),
            ),
        ),
    );
    return $value;
  }
}  
new Data();

最后这就是我想要得到的

<h2>Select</h2>
<select class="options">
<?php 
foreach ($this->example() as $value){
  $output = '<option value="'.$value['name'].'">'.$value['name'].'</option>';
  echo $output;
}
?>
</select>

我想要的是:如果我在选择选项中选择“名称一”,它将返回“ 123哇”,如果我选择“名称二”,则将返回我“选择哇”
我知道可以通过Ajax完成,但是我遇到了一些麻烦。
我的JS代码:

<div id="content">
<?php
foreach ($this->example() as $value){
  foreach ($value['atts'] as $attr_name => $attr_parm){
    $return = '<p>'.$attr_parm['type'].'</p>';
    echo $return;
  }
}
?>
</div>

我了解我的JS代码是完全错误的,但是无论如何,也许您对如何解决我的问题或应该如何解决这个问题有一些想法

1 个答案:

答案 0 :(得分:1)

有一种更简单的方法来制作您想要的东西:

data.php

<?php

$values = array(
        '0' => array(
            'name' => 'Name One',
            'atts'   => array(
                'style' => array(
                    'type'  => '123'
                ),
                'something' => array(
                    'type'  => 'wow'
                ),
            ),
        ),
        '1' => array(
            'name'  => 'Name Two',
            'atts'   => array(
                'style' => array(
                    'type'  => 'select'
                ),
                'something' => array(
                    'type'  => 'wow'
                ),
            ),
        ),
    );


$val=$_POST['val'];

$getKey = array_search($val, array_column($values, 'name'));
if (isset($values[$getKey])) {
    $data=$values[$getKey];
    header('Content-Type: application/json');
    echo json_encode($data);
}
// echo "<pre>";print_r($data);
?>

使用data.php,您可以通过array_search()从数组中获取数据。

和index.php中的

<?php

$values = array(
        '0' => array(
            'name' => 'Name One',
            'atts'   => array(
                'style' => array(
                    'type'  => '123'
                ),
                'something' => array(
                    'type'  => 'wow'
                ),
            ),
        ),
        '1' => array(
            'name'  => 'Name Two',
            'atts'   => array(
                'style' => array(
                    'type'  => 'select'
                ),
                'something' => array(
                    'type'  => 'wow'
                ),
            ),
        ),
    );
    ?>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> 
</script>


<script type="text/javascript">

$(document).ready(function(){
    $(".options").change(function(){

           val=$(this).val();
           // console.log(val);
           $.ajax({
                      url:"data.php", // post val to data.php 
                      type: "POST",
                      data:'val='+val, 
                      success: function(response) {

                              // console.log(response.atts.style.type);
                               //parsing data from json format
                              var str1=response.atts.style.type;
                              var str2=response.atts.something.type;
                              $('.content').html(str1+" "+str2);

                      }

            });



    });
});

</script>


<br><br>
<h2>Select</h2>
<select class="options">
<?php 
foreach ($values as $value){
  $output = '<option value="'.$value['name'].'">'.$value['name'].'</option>';
  echo $output;
}
?>
</select>


<br><br><br><br>
<div class="content">

</div>

希望这对您有所帮助。