У меня есть эта страница admin_inquiry.php (page1), которая имеет динамическую таблицу, которая показывает строки записей. Я хочу получить значения из 2 столбцов, ContactNo и сообщения. Столбец contactno содержит ссылку, которая идет на admin_sms.php (стр. 2) и отображает контакт no в текстовом поле.
Страница 1:
<td><a href="admin_sms.php?ContactNo=<?php echo $row_ContactUs['ContactNo']; ?>">Send SMS</a></td>
страница 2:
<input name='number' type='text' id="number" value="<?php if(isset($_GET['ContactNo'])){echo $_GET['ContactNo'];}else{echo "";}?>">
Я также хочу получить содержимое сообщения столбца с первой страницы и показать его в текстовом поле на стр. 2. Но он должен показать сообщение, принадлежащее определенному идентификатору или чем-то еще. Я слышал о сеансах, но пока не понял. Не могли бы вы показать мне, как?
ОБНОВЛЕНИЕ Я пробовал это в admin_inquiry.php
$_SESSION['message'] = $row_ContactUs['message'];
admin_sms.php
$_SESSION['message']; <textarea name="frmMsg" id="frmMsg" cols="45" rows="5"><?php echo $_SESSION['message'];?></textarea>
Проблема в том, что она показывает одно и то же сообщение. Не соответствующее сообщение, которое принадлежит определенному идентификатору или чему-то. Помогите мне пожалуйста.
Если у вас все еще есть проблемы с решением этого вопроса, в вашей таблице содержится html form
ОБНОВЛЕНИЕ, включая разбивку на страницы
первое решение, создайте файл и назовите его contact.php
<?php $db = new PDO('mysql:host=localhost; dbname=data','root',''); $contacts = $db->query('SELECT * FROM contactdetails'); //creating pagination $nav_counter = basename($_SERVER['SCRIPT_FILENAME']); //getting name of the current page $current_page = $nav_counter; $nav_counter = rtrim($nav_counter, ".php"); //getting the name of the current page and removing the extension //creating pagination pages $next_page = $nav_counter + 1; $prev_page = $nav_counter - 1; //getting row count, we are going to use it to limit our query and to create pagination $row_count = $contacts->rowCount(); //number of records to show per page $num_records = 5; //getting the last page $last_page = ($row_count / $num_records) - 1; if(!is_int($last_page)){ $last_page = (int)$last_page + 1; } //displaying records $start = 0; $limit = $num_records; //number of records to show if ($current_page !== 'admin_inquiry.php'){ $start = ($limit * $nav_counter); } //getting number of rows left in the table $rows_left = $db->query("SELECT * FROM contactdetails ORDER BY ID limit $start,$limit"); $num_rows = $rows_left->rowCount(); //if records left in the table is less than the number of records to show $num_records if ($num_rows < $num_records) { $limit = $num_rows; //limit is equal to the number of records left in the table } //getting number of records from the table $contacts = $db->query("SELECT * FROM contactdetails ORDER BY ID limit $start,$limit"); //displaying pagination and creating pages if they don't exists $pages = array(); for ($counter = 1; $counter <= $last_page; $counter++) { $pages[] = $counter; } //storing pages in array and creating a page if it doesn't exist foreach ($pages as $num) { $page = $num.'.php'; if(file_exists($page)== false && $num <= $last_page){ copy('admin_inquiry.php', $page); } } ?>
создать файл pagination.php
<p class="pagenav"><a href="<?php if($current_page == '1.php'){ echo 'admin_inquiry.php';}else{echo $prev_page.'.php';} ?>" <?php if($current_page == 'admin_inquiry.php'){echo 'class="hide"';} ?>><</a> <a href="<?php echo $next_page.'.php'; ?>" <?php if($next_page > $last_page){echo 'class="hide"';} ?>>></a></p>
создать файл css admin.css
table { width: 100%; margin: 0 auto; } table, td, th { border: 1px solid black; } th { height: 50px; } #div{ width: 40%; margin: 0 auto; } .pagenav a{ display: inline; width: 100px; padding: 10px; height: 100px; border-radius: 50px; font-size: 20px; color: #fff; line-height: 50px; text-align: center; text-decoration: none; background-color: #0186ba; } .pagenav a:hover{ background-color: #fff; border: 1px solid #000; color: #000; } .hide { display: none !important; } p{ text-align: center; }
Файл admin_iquiry.php
<?php require_once('contact.php'); ?> <!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="admin.css"> </head> <body> <div id="div"> <table> <tr> <th>ID</th> <th>Contact No.</th> <th>Message</th> </tr> <?php foreach ($contacts as $value) : ?> <tr><td><?php echo $value['ID']; ?></td><td><?php echo $value['ContactNO']; ?></td><td><?php echo $value['Message'] ?></td><td><form action="admin_sms.php" method="post"><input type="hidden" name="ContactNo" value="<?php echo $value['ContactNO']; ?>"><input type="hidden" name="Message" value="<?php echo $value['Message']; ?>"><input type="Submit" value="Send SMS" name="send_sms" /></form></td></tr> <?php endforeach; ?> </table> <?php require_once('pagination.php'); ?> </div> </body> </html>
admin_sms.php
<?php if(isset($_POST['send_sms'])){ $contactNo = $_POST['ContactNo']; $message = $_POST['Message']; } ?>
html-код
<div style="margin:0 auto; width:50%"> <p>Message for: <?php echo $contactNo; ?></p> <textarea><?php echo "$message"; ?></textarea>
Второе решение с использованием $_GET
<?php require_once('contact.php'); ?> <!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="admin.css"> </head> <body> <div id="div"> <table> <tr> <th>ID</th> <th>Contact No.</th> <th>Message</th> </tr> foreach ($contacts as $value) : ?> <tr><td><?php echo $value['ID']; ?></td> <td><?php echo $value['ContactNO']; ?></td> <td><?php echo $value['Message'] ?></td> //use id of the contact no and in the next page use that id to query data related to that id <td><a href="admin_sms.php?id=<?php echo $value['ID']; ?>">Send Sms</a></td></tr> <?php endforeach; ?> </table> <?php require_once('pagination.php'); ?> </div> </body> </html>
admin_sms.php
<?php $db = new PDO('mysql:host=localhost; dbname=data','root',''); if(isset($_GET['id'])){ $id= $_GET['id']; $results = $db->query("SELECT * FROM contactdetails WHERE ID = $id"); foreach ($results as $value) { $contactNo = $value['ContactNO']; $message = $value['Message']; } } ?>
в вашем html
<div style="margin:0 auto; width:50%"> <p>Message for: <?php echo $contactNo; ?></p> <textarea><?php echo "$message"; ?></textarea>
Подход 1:
Используйте метод POST
для отправки формы. Таким образом, вы можете запросить элемент Message, относящийся к контактному номеру, в зависимости от того, какое имя или идентификатор вы передали элементам <td>
. (вы еще не дали).
Подход 2:
Задайте свойство href элемента контактного элемента динамически, используя, скажем, jQuery
. Установите атрибут действия в URL-адрес, содержащий URL parameters
ContactNo и Message as URL parameters
. Таким образом, вы можете получить доступ к сообщению также из массива GET
точно так же, как и с контактным номером (Примечание. Не уверен, что длинные тексты, такие как сообщение, могут передаваться как параметры URL-адреса, зависят от длины и могут быть проблемами безопасности ).