Как вызвать данные, используя идентификатор из отображаемой таблицы?

Мне нужно вызвать другие данные из базы данных и отобразить их через модальные, но я не могу вызвать идентификатор из моей таблицы HTML.

Вот моя HTML-таблица и php для публикации некоторых данных:

<?php
$connection = mysql_connect('localhost', 'root', ''); //The Blank string is the password
mysql_select_db('ts_php');
$query = "SELECT * FROM job_posted"; //You don't need a ; like you do in SQL
$result = mysql_query($query);
echo "<table class='table'>
<thead>
<th>JOB</th>
<th>STATUS</th>
<th>APPLICATIONS</th>
<th>EDIT</th>
<th>DELETE</th>
</thead>
"; // start a table tag in the HTML

while($row = mysql_fetch_array($result)){   //Creates a loop to loop through results
echo "<tr>
<th>" . $row['job_title'] . "</th>
<td>" . $row['status'] . "</td>
<td>" . $row['applications'] . "</td>
<td><a class='openModal' data-id='".$row['post_ID']."'>edit</a></td>
<td><a href='#'>delete</a></td>
</tr>";
}

echo "</table>"; //Close the table in HTML

?>

А вот мой php внутри модального тела

<?php
(LINE 121:) $queryEdit = "SELECT * FROM job_posted WHERE post_ID = '$row['post_ID']' ";
$resultEdit = mysql_query($queryEdit, $connection);
while($row1 = mysql_fetch_array($resultEdit)){
?>
<span>Name:</span> <?php echo $row1['job_title']; ?><br>
<span>loc:</span> <?php echo $row1['location']; ?><br>
<span>job type:</span> <?php echo $row1['job_type']; ?><br>
<span>description:</span> <?php echo $row1['job_desc']; ?><br>
<?php
}
?>

Вот ошибка выполнения
Примечание: преобразование массива в строку в C: \ xampp \ htdocs \ talent_space_php \ Employee \ jobs_posted.php в строке 121

PS. Я только недавно знал, что mysql_ * будет обесцениваться, поэтому я планирую сначала закончить это, а затем конвертировать в MYSQLI или PDO.

0

Решение

Я сделал нечто подобное недавно.
То, как я работал, было так:
При создании моих строк я добавил data свойства моего модального переключателя (в моем случае кнопка). Так же, как вы добавили data-id, Однако я сделал это для каждого значения, которое мне нужно.
Я просто использовал функцию jquery для добавления моих данных в поля ввода внутри моего модального окна.

Генерация строки таблицы кнопок:

<td><a href="#" class="editId" data-hidden="' . $product['id'] . '" data-name="' . $product['name'] .'"data-short="' . $product['kuerzel'] . '"data-anr="' . $product['anumber'] . '"data-comment="' . $product['comment'] . '" data-toggle="modal"data-target="#editProductModal"><i class="far fa-edit"></i></a></td>

Мой модал:

<div class="modal-body">
<input type="hidden" name="action2" value="edit">
<div class="form-row">
<div class="col-4">
<div class="form-group">
<input type="hidden" class="form-control" name="hidden" id="modal_hidden" value="">
</div>
<div class="form-group">
<label for="select_p" class="col-form label">Produkt:</label>
<input type="text" class="form-control" name="select" id="select_p" value="" required disabled>
</div>
<div class="form-group">
<label for="new_products_add_name" class="col-form label">New Name:</label>
<input type="text" class="form-control" name="new_name" id="new_products_add_name">
</div>
<div class="form-group">
<label for="new_products_add_short" class="col-form label">New Short:</label>
<input type="text" class="form-control" name="new_short" id="new_products_add_short">
</div>
<div class="form-group">
<label for="new_products_add_number" class="col-form label">New ProductNr:</label>
<input type="text" class="form-control" name="new_number" pattern="{3,11}" id="new_products_add_number">
</div>
<div class="form-group">
<label for="new_products_add_comment" class="col-form label">New Comment:</label>
<input type="text" class="form-control" name="new_comment" id="new_products_add_comment">
</div>
</div>
</div>
</div>

Функция:

<script>
$(document).on("click",".editId",function() {
var hidden_value = $(this).data('hidden');
var name_value = $(this).data('name');
var short_value = $(this).data('short');
var anr_value = $(this).data('anr');
var comment_value = $(this).data('comment');
$('#modal_hidden').val(hidden_value);
$('#select_p').val(name_value);
$('#new_products_add_name').val(name_value);
$('#new_products_add_short').val(short_value);
$('#new_products_add_number').val(anr_value);
$('#new_products_add_comment').val(comment_value);
});
</script>

Надеюсь, это поможет. Возможно, это не самый чистый способ сделать это, но он сработал для меня (и моя таблица содержит довольно большое количество строк).

2

Другие решения

Во-первых, я предлагаю вам не выводить значения html.

Во-вторых, я бы использовал pdo, в Интернете достаточно примеров. Несколько уроков должны помочь вам.

По вашей проблеме:

Изменить это:

$queryEdit = "SELECT * FROM job_posted WHERE post_ID = '$row['post_ID']' ";

В один из них:

$queryEdit = "SELECT * FROM job_posted WHERE post_ID = " + $row['post_ID'];
$queryEdit = "SELECT * FROM job_posted WHERE post_ID = {$row['post_ID']} ";
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector