PHP / HTML将onclick函数添加到具有特定名称的子类别中

问题描述 投票:2回答:2

我试图仅为某些递归生成的子类别添加onclick函数。

此代码当前正确显示子类别:

                    <?php if($parent) { ?>
                      <?php $search_params['sCategory'] = $parent['pk_i_id']; ?>
                      <a href="<?php echo osc_search_url($search_params); ?>" class="parent active" data-name="sCategory" data-val="<?php echo $parent['pk_i_id']; ?>">
                        <span class="name"><?php echo $parent['s_name']; ?></span><em>(<?php echo ($parent['i_num_items'] == '' ? 0 : $parent['i_num_items']); ?>)</em>
                      </a>
                    <?php } ?>
                    <?php foreach($categories as $c) { ?>
                      <?php $search_params['sCategory'] = $c['pk_i_id']; ?>

                      <a href="<?php echo osc_search_url($search_params); ?>" class="child<?php if($c['pk_i_id'] == $search_cat_id) { ?> active<?php } ?>" data-name="sCategory" data-val="<?php echo $c['pk_i_id']; $
                        <span class="name"><?php echo $c['s_name'];?></span><em>(<?php echo ($c['i_num_items'] == '' ? 0 : $c['i_num_items']); ?>)</em>
                      </a>

                    <?php } ?>
                  </div>

我想称说functionX();用JS编写的仅用于名为“ catx”的子类别。

FunctionX()在其他地方调用时正常工作。

我已经尝试过类似的操作,但出现白屏:

    <?php if($search_params == "catX") {
    echo '<a onclick="functionX();" href="<?php echo osc_search_url($search_params); ?>" class="parent active" data-name="sCategory" data-val="<?php echo $parent['pk_i_id']; ?>">
      <span class="name"><?php echo $parent['s_name']; ?></span><em>(<?php echo ($parent['i_num_items'] == '' ? 0 : $parent['i_num_items']); ?>)</em>
    </a>;'
    } else {
    echo '<a href="<?php echo osc_search_url($search_params); ?>" class="parent active" data-name="sCategory" data-val="<?php echo $parent['pk_i_id']; ?>">
      <span class="name"><?php echo $parent['s_name']; ?></span><em>(<?php echo ($parent['i_num_items'] == '' ? 0 : $parent['i_num_items']); ?>)</em>
      </a>;' ?>

这很新,谢谢您的帮助!

javascript php html if-statement
2个回答
0
投票

当使用echo时,您正在使用'指定要输出的边界。

在您的代码中,您回显了“某些内容”,但您的内容也包含'。命名:$parent['pk_i_id']

[有几种方法可以做到这一点。这是一个示例(Concatenation):

echo '<a onclick="functionX();" href="' . osc_search_url($search_params) . '">Click me</a>'; // ...

如果您周围有HTML代码,则内联符号很有用:

<b>My name is<?php echo $name ?></b>

请不要混入em:)


0
投票

这不是一种适用于所有人的方法,但是在这种情况下,我发现它在视觉上很有帮助(如果需要调试则非常有用),它可以使用[>逐步构建字符串]]

    声明

  • 变量;和
  • 条件语句
  • 然后 echo字符串,一旦我构建它。

    示例:

    <?php $Item_Number = ($parent['i_num_items'] === '') ? 0 : $parent['i_num_items']; $Link = ''; $Link .= '<a '; if ($search_params === 'catX') { $Link .= 'onclick="functionX();" '; } $Link .= 'href="'.osc_search_url($search_params).'" class="parent active" data-name="sCategory" data-val="'.$parent['pk_i_id'].'">'; $Link .= '<span class="name">'.$parent['s_name'].'</span>'; $Link .= '<em>('.$Item_Number.')</em>'; $Link .= '</a>'; echo $Link; ?>

  • © www.soinside.com 2019 - 2024. All rights reserved.