【问题标题】:How to pass an array to js button click in phalcon volt template engine如何在phalcon volt模板引擎中将数组传递给js按钮单击
【发布时间】:2022-02-02 16:16:53
【问题描述】:

我将一个关联数组从我的控制器传递到我的视图,然后在模板引擎上对其进行迭代

 <tbody class="text-center">
                        {% for inv in inv_list %}
                            <tr>
                                <td><input type="checkbox" id="vehicle1" name="vehicle1" value="{{ inv['supplier_invoice_number'] }}"></td>
                                <td>{{ inv['contract_id'] }}</td>
                                <td>{{ inv['supplier_invoice_number'] }}</td>
                                <td>{{ inv['final_payable_amount'] }}</td>
                                <td>{{ inv['markup_value'] }}</td>
                                <td>{{ inv['markup_type'] }}</td>
                                <td>{{ inv['buyer_price'] }}</td>
                                <td><button class="btn btn-success" onclick="generateInvoice('{{ inv }}')">Invoice</button></td>
                                
                                <td><button class="btn btn-success">Invoice Email</button></td>

                            </tr>
                        {% endfor %}
                    </tbody>

和上面一样。我想在 onclick 方法中传递对象的值,但它给出了一个错误

数组到字符串的转换

.如何解决这个问题。请帮帮我

【问题讨论】:

  • 您好,欢迎来到 SO。如果您向他人提供格式良好且人类可读的代码,您更有可能从他人那里获得帮助。您能花点时间更新一下代码的缩进吗?谢谢!

标签: php phalcon volt


【解决方案1】:

此错误Array to string conversion表示您尝试打印数组。在您的情况下,inv 是一个数组。我认为您只需要传递 onclick="generateInvoice('{{ inv['contract_id'] }}')" 之类的 id 或 inc 数组中的其他唯一值。

【讨论】:

  • 我需要函数中 inv 中的所有值如何传递它们?
  • @technogeek 有多种方法可以做到这一点。 1)implode() 2)创建一个 json 字符串(json_encode())。一个 di 认为 json 对你有好处
  • {{implode(inv)}} 不工作
  • 那行不通。我不知道如何在 volt 视图中使用 php 函数,但在控制器中,您可以使用 json_encode($inc) 将您的 inv 转换为新的单独 var,并通过新键(如 myJson)将它们保存在您的 inv 对象中。然后您可以通过此键在您的视图中访问,例如:{{ inc['myJson']。就是这样!
猜你喜欢
  • 1970-01-01
  • 2016-01-29
  • 2019-10-03
  • 2014-05-14
  • 2021-12-27
  • 2016-07-10
  • 1970-01-01
  • 2014-11-11
  • 1970-01-01
相关资源
最近更新 更多