单击提交按钮后,jQuery选择器未显示复选框的选定值,我收到错误[object Object]

时间:2014-06-20 11:10:07

标签: javascript php jquery ajax jquery-selectors

嗨,我有一个小项目,其中我有标签1,即FahrzeugeWidget和标签2,即FahrzeugeWidgetEdit。在1选项卡中我有列表,在第二个选项卡中我有复选框列表,我想从中选择用户想要的内容,然后在提交按钮后切换到tab1并仅显示从checkbox中选择的值。我使用jQuery选择器同样。每件事都是运行正常。只有我无法从提交按钮后的复选框中选择值。由于无法识别,我只能犯小错误。这是小提琴:demo所以我应该只从复选框中选择那些值。这是我的代码:

dashboard.php

if($param['aktion'] == 'save-widget-vehicle')
{
    $page['register-fahrzeuge'] = array(
        1   => array( 'Fahrzeug','aktiv',$page['script'],''),
        0   => array( 'Edit-Fahrzeug','enabled',$page['script'],'',''), 
    );

        $opts = !empty($param['filterOpts']) ? $param['filterOpts'] : array();

      $tmp = array();
      foreach ($opts as $opt) {
            $tmp[] = '"'.$opt.'"';
      }
             $query = 
          'SELECT Fahrzeuge.dsnr,name
           FROM Fahrzeuge
           INNER JOIN ohne_fahrzeuge ON Fahrzeuge.dsnr = ohne_fahrzeuge.dsnr
           WHERE Fahrzeuge.name IN ('.implode(",", $tmp).')';

      $result = mysql_query($query, $myConnection);
      $data = array();
        $html = '<table width="538" cellspacing="0" cellpadding="0" border="0">
                <tr>
                    <td>
                        <div>'.CreateRegister($page['register-news']).'</div>
                        '.CreateMessage().'
                        <div class="cont-liste-verlauf register"> ';
                        while($row = mysql_fetch_array($result)){       
                        //$news_result = $fahrzeuge['name']; 
                        $html .= '<table id="fahrzeuge"> 
                                        <tr>
                                    <td>                                        
                                            <a href="amo_fahrzeuge.php"> '. $data[] = $row .'</a>                                       
                                </td>                               
                            </tr> ';                                
                              }

                        $html .= '</table>          
                    </div>
                </td>
            </tr>
        </table>';


                    $return = array(
            'status' => 1,
            'html'  => $html
        );

    echo json_encode($return);
    die();

      $param['aktion'] = 'get-widget-vehicle';
}

dashboard.js

function getFahrzeuge() {   
    var opts = [];
    $("input[type=checkbox]").each(function () {
     if (this.checked) {
         opts.push($(this).attr("id"));
     }
    }); 
    return opts;
 }


    function saveFahrzeugeWidget(opts){
        if(!opts || !opts.length){
          opts = allFahrzeuge;
        }

        $.ajax({
          type: "POST",
          url: "ajax/dashboard.php",
          dataType : 'json',
          cache: false,
          data: {filterOpts: opts, 'aktion' : 'save-widget-vehicle'},
          success: function(data){
           // $('#fahrzeuge').html(makeTable(records));
             $('#fahrzeuge').html(data.html);
          },
      error: function(data){
                alert('error' + data);
          }
        });
      }


      $('#fahrzeuge .butt-rahmen').live('click', function(){
            if($(this).attr('id') == 'submitId')
            var opts = getFahrzeuge();
            saveFahrzeugeWidget(opts);

           //   $("#regl1").show();
           //   $("#regl1").hide();

 });
      var allFahrzeuge = [];
      $("input[type=checkbox]").each(function(){
        allFahrzeuge.push($(this)[0].id)
      })  

1 个答案:

答案 0 :(得分:1)

我不知道这是否解决了您的问题,但您使用的是哪个JQuery版本?自1.9版以来,JQuery函数.live()已被删除。您必须改为使用.on()。您是否可以获取这些值,因为使用live()函数不会触发操作?