如何在YII2中单击按钮后获取表格数组

时间:2015-10-21 15:13:46

标签: javascript php arrays yii2

这是我的表格:

<div class="mutiple-array-form">
<?php $form = ActiveForm::begin(); ?>

<table id="sampleTbl", class="table table-striped table-bordered">
    <thead>
        <tr id="myRow">
            <th>Name</th>
            <th>Age</th>
        </tr> 
    </thead>
    <tbody>
        <tr>
            <td>william</td>
            <td>32</td>
        </tr>
        <tr>
            <td>Muli</td>
            <td>25</td>
        </tr>
        <tr>
            <td>Sukoco</td>
            <td>29</td>
        </tr>
    </tbody>
</table>

<div class="form-group">
    <?= Html::button('Create',['class' => 'btn btn-success _addNew', 'onclick' => 'myfunction()']) ?>
</div>

<?php ActiveForm::end(); ?>
</div>

以下是我的Javascript代码:

<?php  
$script = <<< JS
function myfunction() {
alert(document.getElementById("sampleTbl").rows.namedItem("myRow").innerHTML);
}

JS;
$this->registerJs($script);
?>

我的代码不起作用。当我点击按钮时,没有任何反应。例如,我想在alert中使用数组显示表值。请帮忙!

1 个答案:

答案 0 :(得分:1)

你正在努力的工作因为以某种方式宣告yii2中的内联脚本中的函数不起作用,我不知道它的正当理由而我试图找到原因。

现在,如果您编写像这样的脚本

,您的代码将会起作用
<?php  
$script = <<< JS
 $('#idOfButton').click(function(){
      alert(document.getElementById("sampleTbl").rows.namedItem("myRow").innerHTML);
  });
JS;
$this->registerJs($script);
?>

它只会打印标题的值

现在,如果您希望将表内的数据作为数组并提醒它,请尝试使用此代码

<?php
$script = <<< JS

$('#idOfButton').click(function(){
var myTableArray = [];
$("table#sampleTbl tr").each(function () {
    var arrayOfThisRow = [];
    var tableData = $(this).find('td');
        if (tableData.length > 0) {
            tableData.each(function () {
                arrayOfThisRow.push($(this).text());
            });
            myTableArray.push(arrayOfThisRow);
       }
    });

    alert(myTableArray);
});
JS;
$this->registerJs($script);
?>

我建议您使用AppBundle来使用脚本,这样您就可以通过浏览器调试代码并自己解决问题,这将有助于您找到答案。