Javascript 使用与蛋糕php3链接的

Javascript 使用与蛋糕php3链接的,javascript,ajax,cakephp-3.0,Javascript,Ajax,Cakephp 3.0,我试图根据另一个选择选项数据从select加载数据,因此我使用了Chained idea,但我在获取相关数据时遇到问题,我在视图中这样做: echo $this->Form->input('warehouse_categories_items_id', ['options' => $warehouseCategoriesItems,'class' => 'form-control','id'=>'type']);

我试图根据另一个选择选项数据从select加载数据,因此我使用了Chained idea,但我在获取相关数据时遇到问题,我在视图中这样做:

  echo $this->Form->input('warehouse_categories_items_id', ['options' => $warehouseCategoriesItems,'class' => 'form-control','id'=>'type']);
                                    echo $this->Form->input('warehouse_items_id', ['options' => $warehouseItems, 'class' => 'form-control','id'=>'item','data-chained'=>$query]);


<script type="text/javascript">
$(document).ready(function () {
    $("#item").chainedTo("#type");
});

但它只获取我的第一个选择选项数据,而不获取第二个相关数据

如果要使用级联选择,有两种方法:-

  • 本地(提供所有数据以选择选项)
  • 远程(将向服务器请求选项,然后将该选项附加/前置到select)
  • 我将为您提供每种方法的示例和步骤:-

    本地:-(不使用CakePHP编写代码以便正确理解)

    <select id="mark" name="mark">
      <option value="">--</option>
      <option value="bmw">BMW</option>
      <option value="audi">Audi</option>
    </select>
    
    <select id="series" name="series">
      <option value="">--</option>
      <option value="series-3" data-chained="bmw">3 series</option>
      <option value="series-5" data-chained="bmw">5 series</option>
      <option value="series-6" data-chained="bmw">6 series</option>
      <option value="a3" data-chained="audi">A3</option>
      <option value="a4" data-chained="audi">A4</option>
      <option value="a5" data-chained="audi">A5</option>
    </select>  
    
    在控制器的optionData方法中,如果必须以JSON格式发送数据(只需从DB中查找数据,然后使用PHP函数JSON_encode将选项数据转换为JSON)

    如果需要本地绑定,则为选项创建数据链属性 您必须在控制器中创建一个数组,如下所示,
    你可以这样做

    $options = [
        ['text' => 'Series-3', 'value' => 'series-3', 'data-chained' => 'bmw'],
        ['text' => 'Series-5', 'value' => 'series-5', 'data-chained' => 'bmw'],
        ['text' => 'A-3', 'value' => 'a-3', 'data-chained' => 'audi'];
    
    echo $this->Form->select('field', $options);
    

    快乐编码:)

    您使用了jquery链接,这很好。但在更改第一个下拉列表后,是否向服务器发送任何请求@Dina ShaldoumNo,不是它给了我所有的结果,这不是真的,不是相关的值。这是你可以找到文档的地方。问题是,我试图获得数据链动态,但我不能,它返回null。你能告诉我如何在cake php中放置data chained=“bmw”?你可以这样做,注释不接受很多字符,所以我在答案的末尾添加了您的查询答案@迪娜·沙尔多姆
    <select id="mark" name="mark">
    <option value="">--</option>
    <option value="bmw">BMW</option>
    <option value="audi">Audi</option>
    </select>
    <select id="series" name="series">
    <option value="">--</option>
    </select>
    <select id="model" name="model">
    <option value="">--</option>
    </select>
    <select id="engine" name="engine">
    <option value="">--</option>
    </select>
    
    $("#series").remoteChained({
      parents : "#mark",
      url : "series/optionData"
    });
    
    $("#model").remoteChained({
      parents : "#series",
      url : "models/optionData"
    });
    
    $("#engine").remoteChained({
      parents : "#series, #model",
      url : "engines/optionData"
    }); 
    
    $options = [
        ['text' => 'Series-3', 'value' => 'series-3', 'data-chained' => 'bmw'],
        ['text' => 'Series-5', 'value' => 'series-5', 'data-chained' => 'bmw'],
        ['text' => 'A-3', 'value' => 'a-3', 'data-chained' => 'audi'];
    
    echo $this->Form->select('field', $options);