首页 > 解决方案 > 未捕获的 SyntaxError: missing ) 在 html 和 php 中的参数列表之后

问题描述

我有一个表格,其中每一行都有一个“立即购买”按钮,通过单击按钮页面可以重定向到新窗口中的贝宝付款流程。我正在该页面上发送数据,如下所示:

<input type="submit" value="Buy Now" class="btn btn-success" onclick="window.open('<?= base_url() ?>paypal/create_payment_with_paypal?price=<?php echo $value['price']; ?>&item_name=<?php echo $value['program_name']; ?>&item_number=<?php echo $value['id']; ?>&item_description=<?php echo $value['description'];?>&gym_id = <?php echo $this->session->userData('gym_account_id'); ?>','name','height:50;width:400')">

它不适用于每一行并给出错误。请帮助我解决它。

标签: phphtml

解决方案


您的查询字符串中有空格。不确定这是否会导致您的问题。但是你应该对你的查询字符串进行 url 编码。

目前很难调试/阅读。考虑分手。我在这里注释掉了 session 变量并替换了你的 base_url 函数来测试输出。

<?php
function base_url() { return '/';}
$value        = ['price'=>'12', 'program_name' => 'physics', 'id' => '2679878', 'description' => 'day course'];
$params       =
[
    'price'            => $value['price'],
    'item_name'        => $value['program_name'],
    'item_number'      => $value['id'],
    'item_description' => $value['description'],
    //'gym_id'           => $this->session->userData('gym_account_id')
];
$query_string = http_build_query($params);
$url          = base_url() . 'paypal/create_payment_with_paypal?' . $query_string;
?>
<input type=
"submit"  value=
"Buy Now"  class=
"btn btn-success"  onclick=
"window.open('<?=$url?>','name','height:50;width:400')">

输出:

<input type=
"submit"  value=
"Buy Now"  class=
"btn btn-success"  onclick=
"window.open('/paypal/create_payment_with_paypal?price=12&item_name=physics&item_number=2679878&item_description=day+course','name','height:50;width:400')">

推荐阅读