Solution 1: Avoid Inline Handlers (Recommended)
Using inline onclick handlers is considered bad practice because:
1.They cause messy quote escaping issues.
2.They create unnecessary scope problems.
3.They make your code harder to maintain.
Instead, pass values via data attributes or embed them in a <script> tag as JSON.
Example:
<?php
$button_data = [
"example 1",
"example 2",
"example 3"
];
?>
<script type="application/json" id="button-data">
<?= json_encode($button_data); ?>
</script>
<button>Example 1</button>
<button>Example 2</button>
<button>Example 3</button>
<script>
const buttonData = JSON.parse(
document.querySelector('#button-data').textContent
);
const buttons = document.querySelectorAll('button');
buttons.forEach((button, i) => {
button.addEventListener('click', () => {
testFunction(buttonData[i]);
});
});
function testFunction(data) {
console.log(data);
}
</script>