如何在Wordpress中使用骨干网保存选择下拉列表并进行检索?

时间:2019-05-25 11:56:38

标签: wordpress webpack backbone.js backbone.js-collections backbone-stickit

当我尝试使用jquery或javascript添加数据时,我的选择框数据没有保存到wordpress数据库wp_usermeta和user_meta表中。第二个选择框也不在第一个选择框的更改事件中填充状态。

我在我的项目中使用woocommerce pos和woocommerce pos pro插件。 在添加或编辑新客户时。当我在第一个选择框中更改我的国家时,我已经为国家创建了两个选择框,现在为国家创建了两个选择框,当iam iam尝试向其中添加自定义选项时,它不会自动在国家/地区ID +我在国家选择框的更改事件上使用jquery的状态,它没有将数据保存在databse中。而是显示了以前存储的值。对骨干,webpack和stickit来说是非常新的,并且不了解其mvc结构,因此我需要帮助一样。

插件名称:Wooocomerce pos和woocomerce pos pro插件

文件名:tmpl-customer-edit.php(woocomerce pos pro)

    <td <?php if(isset($field['colspan'])) { $i++; echo 
  'colspan="'.$field['colspan'].'"'; } ?>>
  <?php if($key=='country'): ?>
     <label for="billing_address_<?php echo $key; ?>"><?php echo 
  $field['label']; ?></label>
       <select class="form-control country" data-handler="address" 
name="billing_address[<?php echo $key; ?>]" id="billing_address_<?php
 echo $key?>">           
      <?php //Getting Country List
   foreach($get_country as $gc)
         {
          $con_value=$gc['name'];
          $con_id=$gc['c_id'];

          echo '<option 
 value="'.$con_value.'">'.$con_value.'</option>';
        }

 ?>  

      </select>   


  <?php elseif($key=='state'): ?>
  <label for="billing_myaddress_<?php echo $key; ?>"><?php echo 
  $field['label']; ?></label>
  <select class="form-control state"  name="billing_address[<?php echo 
$key; ?>]" id="billing_address_<?php echo $key?>">


 ?>  
 <?php

 foreach($get_states as $gs)
         {
          $state_value=$gs['name'];
          $state_id=$gs['s_id'];

          echo '<option 
 value="'.$state_value.'">'.$state_value.'</option>';
        }

 ?>
      </select>

    <?php else:?>
  <label for="billing_address_<?php echo $key; ?>"><?php echo 
 $field['label']; ?></label>
  <input class="form-control" data-handler="address" type="text" 
 name="billing_address[<?php echo $key; ?>]" id="billing_address_<?php 
 echo $key; ?>">
  <?php endif; ?>
</td>

app.build.js:-

=================     / ********************自定义通话************************** //

 bb.Stickit.addHandler({
  selector: 'select[data-handler="address"]',    
  onGet: function( value, options ){
      var key = options.selector.match(/\w+\[(\w+)\]/)[1];
    if( _(value).has(key) ){

      return value[key];

    } else {
      return value;
    }

  },
    onSet: function( value, options ){
    console.log('MY VALUE IS'+value);
    var key = options.selector.match(/\w+\[(\w+)\]/)[1];
    console.log('MY KEY'+key);
    var address = options.view.model.get(options.observe);
    console.log('MY ADDRESS IS'+address);
    address = address || {};
    address[key] = value;
    console.log('MY ADDRESS'+address[key]);
    //CUSTOM JQUERY

    //CUSTOM JQUERY

    return address;
  }
}); 

0 个答案:

没有答案