2015-02-01 3 views
1

У меня есть эта страница admin_inquiry.php (page1), которая имеет динамическую таблицу, которая показывает строки записей. Я хочу получить значения из 2 столбцов, ContactNo и сообщения. Столбец contactno содержит ссылку, которая идет на admin_sms.php (стр. 2) и отображает контакт no в текстовом поле.PHP получить значения с другой страницы

стр.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 "";}?>"> 

Я также хочу, чтобы получить содержание сообщения колонки от 1-й страницы и показать его в текстовое поле в странице 2. Но он должен показать сообщение принадлежит определенному идентификатору или чему-то. Я слышал о сеансах, но пока не понял. Не могли бы вы показать мне, как?

UPDATE Я попробовал это в 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> 

Проблема заключается в том, что это показывает то же самое сообщение. Не соответствующее сообщение, которое принадлежит определенному идентификатору или чему-то. Помогите мне пожалуйста.

+0

Вы можете создать переменную а [Session] (http://www.w3schools.com/php/php_sessions.asp) и присвойте значение. Вы можете использовать эту переменную на другой странице. – mertyildiran

+0

@RumeshEranga обновленный пост. вы можете помочь? – MarkTu

+0

@MehmetMertYidiran Обновлено сообщение. Он не отображает соответствующее сообщение. он показывает то же самое. T__T – MarkTu

ответ

0

Если вы все еще возникаете проблемы, решая это, в таблице включает в html form

UPDATE включая пагинацию

первого решением, создайте файл и назовите его 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"';} ?>>&lt;</a> <a href="<?php echo $next_page.'.php'; ?>" <?php if($next_page > $last_page){echo 'class="hide"';} ?>>&gt;</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> 

enter image description here

Второе решение с использованием $_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> 

enter image description here

+0

Удивительный! Сейчас он работает. Большое спасибо за Вашу помощь. Определенно учиться на этом. – MarkTu

+0

Как показывать только 5 записей за раз? Тогда у вас есть предыдущий, следующий за ним. – MarkTu

+0

У меня есть ограничение на 5 записей. 'SELECT * FROM inqproduct ORDER BY date DESC LIMIT 5' Просто, как это сделать, следующее, чтобы показать остальную часть записей? – MarkTu

1

Подход 1:

Используйте метод POST для отправки формы. Таким образом, вы можете запросить элемент Message, относящийся к контактному номеру, в зависимости от того, какое имя или идентификатор вы указали на элементы <td>. (вы еще не дали).

подход 2:

Установите HREF свойство контакта No. элемента динамически, используя, скажем jQuery. Установите атрибут действия в URL-адрес, который содержит как ContactNo, так и Message как URL parameters. Таким образом, вы можете получить доступ к сообщению также из массива GET так же, как и с контактным номером (Примечание. Не уверен, что длинные тексты, такие как сообщение, могут передаваться как параметры URL-адреса, зависят от длины и могут быть проблемами безопасности).

+0

Обе строки кода, отображающие переменную SESSION, не показывают, что вы ее кладете или получаете, вы только что упомянули об этом. Положив его или присвоив ему: $ _SESSION ['message'] = "Некоторое сообщение идет здесь"; Пока выберем его на второй странице: $ MyLocalVarInPage2 = $ _SESSION ['message']; echo ('Для тестирования:'. $ MyLocalVarInPage2); –

+0

Как вы назначаете $ _SESSION ['message'] равное значению в динамической таблице? Вы видите, что в admin_inquiry.php в столбце отображаются сообщения из поля базы данных, такие как MarkTu

+0

обновлен до $ _SESSION ['message'] = $ row_ContactUs ['message']; и он по-прежнему показывает одно и то же сообщение. а не соответствующий. T_T – MarkTu

Смежные вопросы