Я пытаюсь получить строку динамической таблицы после нажатия кнопки «Резерв» (или нажатия самой строки «если это имеет значение»), но «getElementById» ничего не возвращает (я хочу отобразить их в вход) вот код
HTML / PHP
<div class = "form1">
<div>
<label>Code creneau1</label>
<input type = "text" id = "nop" name='nop'>
<label>Code creneau2</label>
<input type = "text" id = "seh" name='seh'>
<label>Code creneau3</label>
<input type = "text" id = "row" name='row'>
<label>Code creneau4</label>
<input type = "text" id = "name" name='name'>
</div>
<table class = "table table-striped" id = "res">
<thead>
<tr>
<th>code salle</th>
<th> type </th>
<th>etage</th>
<th>capacité</th>
<th> action</th>
</tr>
</thead>
<tbody><?php
while ($donnees = $requete->fetch() and $donnees2 = $requete2->fetch())
{
$donnees_ar=$_POST['date'];
$code_cr=$_POST['heure'];
// echo $donnees2['id_res'].'<br>';
if ($donnees['code_salle']!=$donnees2['code_salle'] and $donnees2['date_res']=$_POST['date']){
echo "<tr id='try'>
<td >".$donnees['code_salle']."</td>
<td >".$donnees['type_salle']."</td>
<td >".$donnees['capacity']."</td>
<td >".$donnees['etage']."</td>
<td>
<a href='#0' id='he' class='cd-popup-trigger'>reserver</a>
</td>
</tr>";
}
};
}
?>
JS
<script src = "js/main.js"></script>
<script>
var tbl= document.getElementById("res");
for(var x=1;x<tbl.rows.length;x++ ){
tbl.rows[x].onclick =function {
document.getElementById('name').value=this.cells[0].innerHTML;
document.getElementById('row').value=this.cells[1].innerHTML;
document.getElementById('seh').value=this.cells[2].innerHTML;
document.getElementById("nop").value=this.cells[3].innerHTML;
}
}
</script>
Вы были объявлены JavaScript внутри самого файла JS. в этом случае файл JS не будет работать для вашего HTML и не повлияет ни на что, написанное в вашем HTML. Кроме того, вы неправильно объявили свою функцию onClick. Для этого вам нужно переместить тег внутри вашего HTML. Для лучшей демонстрации:
var table= document.getElementById("res");
if (table != null) {
for (var i = 0; i < table.rows.length; i++) {
for (var j = 0; j < table.rows[i].cells.length; j++)
table.rows[i].cells[j].onclick = function () {
tableText(this);
};
}
}
function tableText(tableCell) {
alert(tableCell.innerHTML);
}
<div class = "form1">
<div>
<label>Code creneau1</label>
<input type = "text" id = "nop" name='nop'>
<label>Code creneau2</label>
<input type = "text" id = "seh" name='seh'>
<label>Code creneau3</label>
<input type = "text" id = "row" name='row'>
<label>Code creneau4</label>
<input type = "text" id = "name" name='name'>
</div>
<table class = "table table-striped" id = "res">
<thead>
<tr>
<th>code salle</th>
<th> type </th>
<th>etage</th>
<th>capacité</th>
<th> action</th>
</tr>
</thead>
<tbody>
<?php
while ($donnees = $requete->fetch() and $donnees2 = $requete2->fetch())
{
$donnees_ar=$_POST['date'];
$code_cr=$_POST['heure'];
// echo $donnees2['id_res'].'<br>';
if ($donnees['code_salle']!=$donnees2['code_salle'] and $donnees2['date_res']=$_POST['date']){
echo "<tr id='try'>
<td >".$donnees['code_salle']."</td>
<td >".$donnees['type_salle']."</td>
<td >".$donnees['capacity']."</td>
<td >".$donnees['etage']."</td>
<td>
<a href='#0' id='he' class='cd-popup-trigger'>reserver</a>
</td>
</tr>";
}
};
}
?>
Мой JS находится в файле HTML и является последним на странице (он не в отдельном файле), и я не нажимаю на строку, пока не будут выполнены html и php R, и все еще ничего не работает @ShayanFaghani
Уважаемый @OumniaRanaSEGUENI, я не знаю точной функциональности, но если вам нужно что-то изменить, вы можете использовать отредактированный выше код. Он предупредит ячейку, на которую нажали. Вы можете добавить к нему свой собственный функционал по своему желанию.
Было ли это решением для вас?
спасибо сработало! хотя теперь я застрял, пытаясь перенести его из Js в php, но ваш код сработал, так что еще раз спасибо
"'getElementById' ничего не возвращает" Невозможно, указанный метод возвращает либо ссылку на элемент, либо
null
. Убедитесь, что код не запущен до того, как элементы существуют, и чтоthis
в вашем коде относится к правильному элементу (я сомневаюсь, что это не так).