#javascript #php #function #mysqli
#javascript #php #функция #mysqli
Вопрос:
У меня есть строковое значение из моей базы данных, которое является идентификатором, и у меня есть кнопка с функцией javascript onclick=»значения (‘аргумент’)«.
Моя проблема в том, что когда я попытался нажать на эту кнопку, у меня возникла эта ошибка:
(index):1 Uncaught ReferenceError: argument is not defined
Я знаю, что это происходит потому, что аргумент не обрабатывается как строка.
Как я могу передать аргумент в виде строки?
Все это таблица, которая содержится в функции php, которая показывает информацию из моей базы данных
Это мой полный код.
<?php
function oportunities($resultQuery)
{
echo '<div class="table-responsive">
<table class="responstable">
<thead class="thead">
<tr>
<th>No.</th>
<th>value1</th>
<th>value2</th>
<th>value3</th>
<th>value4</th>
<th>value5</th>
<th>value6</th>
<th>value7</th>
<th>value8</th>
<th>value9</th>
<th>value10</th>
<th>value11</th>
<th>value12</th>
<th>value13</th>
<th>value14</th>
<th>value15</th>
</tr>
</thead>
<tbody>';
foreach($resultQuery as $row){
echo '<tr>
<td> '. $row['id'] .'</td>
<td>'. $row['value1'] .'</td>
<td>'. $row['value2'] .'</td>
<td class="descripcion">
<p class="text-descripcion">'.$row['value3'].' </p>
</td>
<td> '.$row['value4'].' </td>
<td> '. $row['value5'].' </td>
<td><p class="text-center">'. $row['value6'] .'% </p></td>
<td> '.$row['value7'].' </td>
<td> '.$row['value8'].' </td>
<td> '.$row['value9'].' </td>
<td> '.$row['value10'].'</td>
<td> '.$row['value11'].' </td>
<td> '.$row['value12'].' </td>
<td> '. $row['value13'].' </td>
<td>
<button class="center-block btn btn-acept"><i class="fa fa-check" aria-hidden="true"></i>
</button>
</td>
<td>
<button onclick="values('. $row['id']. ')" class="center-block btn btn-editar launch-modal" data-modal-id="modal-edit"><i
class="fa fa-pencil" aria-hidden="true"></i>
</button>
</td>
</tr>';
}
echo '</tbody>
</table>
</div>';
}
Комментарии:
1. Ошибка в javascript, где ваш код javascript?
Ответ №1:
Вы добавляете кавычки и экранируете их
<button onclick="values(''. $row['id']. '')" class="center-block
Поскольку вы используете двойные кавычки для атрибута, вам понадобятся одиночные кавычки для аргумента, но вы уже используете одиночные кавычки в PHP, поэтому вам нужно экранировать их, чтобы они не анализировались PHP.
Конечно, лучшим вариантом было бы вообще не использовать встроенный javascript, но addEventListener
.
Комментарии:
1. но если я использую addEventListener, как я могу передать аргумент $row[‘id’] функции javascript?
2. Использование атрибута данных для помещения данных в элемент и получение этого атрибута данных при нажатии кнопки.
3. Не могли бы вы объяснить это на примере?
4. Я получил эту ошибку jquery.min.js:2 Uncaught TypeError: не удается прочитать свойство ‘addEventListener’ из null
5. Не уверен, почему вы получите ошибку jQuery, когда опубликованный код не использует jQuery? В любом случае, элементы должны быть доступны для их получения, обратите внимание, что скрипт помещается после элемента с заданным идентификатором и т.д.