2015-04-15 3 views
0

Я создал таблицу с тремя полями и сохраненными значениями в ней. И я создал форму, в которой могут выполняться различные операции. Один из них извлекается. Когда я нажимаю кнопку «Получить», запрашиваемые данные из таблицы отображаются, но на другой странице. Я хочу показать это на той же странице. Я хочу сделать это, используя только PHP. Это возможно?Как отобразить полученные данные на одной странице с помощью PHP

<!DOCTYPE html> 
<html> 
<head> 
<title>Untitled Document</title> 
</head> 
<body> 

<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = ''; 
$dbname = 'DB'; 
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname); 
if(mysqli_connect_error()) 
{ 
die("couldn't connect" . $conn->connect_error()); 
} 
$id = $_POST['Id']; 
$name = $_POST['Name']; 
$blood = $_POST['BloodGroup']; 


if(isset($_POST['insert'])){ 
     $insert = "Insert into ins(Id, name, BloodGroup) values ('$id','$name', '$blood')" ; 
     if($conn->query($insert) === TRUE) { 
     echo ("Input data entered successfully"); 
     } else { 
     echo ("Input data failed to be entered" . $conn->error()); 
     } 
     $conn->close(); 
} elseif(isset($_POST['update'])) { 

     $update = "update ins set Name='".$name."', BloodGroup='".$blood."' where Id='".$id."'"; 
     mysql_query($update); 
     if($conn->query($update) === TRUE) { 
     echo ("Data updated successfully"); 
     } else { 
     echo ("Data cant be updated" . $conn->error()); 
     } 
     $conn->close(); 
} elseif(isset($_POST['delete'])) { 
     $id = $_POST['Id']; 
     $delete = "delete from ins where Id='".$id."'"; 
     if($conn->query($delete) === TRUE) { 
     echo ("Data deleted successfully"); 
     } else { 
     echo ("Data cant be updated" . $conn->error()); 
     } 
     $conn->close(); 
} 
else { 
$id = $_POST['Id']; 
$retrieve = "SELECT * FROM ins WHERE Id = ".$id; 
if ($result=mysqli_query($conn,$retrieve)) 
{ 
    while ($row=mysqli_fetch_row($result)) 
{ 
echo '<table> 
<tr> 
<td>Id</td> 
<td>Name</td> 
<td>Blood Group</td> 
</tr> 
<tr> 
<td>'.$row[0].'</td> 
<td>'.$row[1].'</td> 
<td>'.$row[2].'</td> 
</tr> 
</table>'; 
//$row[0],$row[1],$row[2]'; 
} 
    mysqli_free_result($result); 
}} 
$conn->close(); 
?> 

<h2>SELECT THE OPERATION YOU WANT TO PERFORM<h2> 
<form method="post"> 
Id: <input type="text" name="Id" /> 
Name: <Input type="text" name="Name" /> 
BloodGroup: <input type="text" name="BloodGroup" /><br /><br /> 
<input type="submit" name="insert" value="Insert" /> 
<input type="submit" name="update" value="Update" /> 
<input type="submit" name="delete" value="Delete" /> 
<input type="submit" name="retrieve" value="retrieve" /> 
</form> 
</body> 
</html> 
+1

Вы не можете это сделать. PHP - это серверный язык, и вам нужно перезагрузить страницу для выполнения сценариев. Вы можете использовать 'AJAX', чтобы делать то, что хотите, но для этого требуется javascript. – mariobgr

+0

Поделитесь своим кодом –

+0

, установите атрибут действия формы на ту же страницу, что и форма, а также добавьте PHP-код, который извлекает данные на странице с помощью формы. –

ответ

0

Вы не указали нам код в первом файле с помощью кнопки извлечения. Если я правильно понимаю, это то, что вы хотите. Вы должны иметь форму на первом файле, то не указать атрибут действия

<form method="post"> 

и вы должны иметь кнопку на нем, как так

<button type='submit'> 

При нажатии кнопки, тот же файл выполняется. В начале файла вы проверяете, была ли почта, если она была, обрабатывает и выводит то, что вы хотите (и не выводите кнопку «Восстановить»). Вам не нужно иметь вторую форму, чтобы показать результаты.

Вы также нуждаетесь в этом, прежде чем выводится заголовок html, иначе вы не увидите значения ваших полей редактирования.

if(!isset($_SESSION)) 
session_start(); 

Я не могу видеть что-либо еще неправильно (не запуская его сам). Вы понимаете, что страница будет обновлена! Если вы этого не хотите, вам нужно использовать ajax.

+0

Подождите, я поместил весь код там. Я хочу, чтобы данные отображались на одной странице. –

0
elseif(isset($_POST['retrieve'])) 
{ 
$id = $_POST['Id']; 
$retrieve = "SELECT * FROM `ins` WHERE `Id` ='".$id."'"; 
if ($result=mysqli_query($conn,$retrieve)) 
{ 
    while ($row=mysqli_fetch_row($result)) 
{ 
echo '<table> 
<tr> 
<td>Id</td> 
<td>Name</td> 
<td>Blood Group</td> 
</tr> 
<tr> 
<td>'.$row[0].'</td> 
<td>'.$row[1].'</td> 
<td>'.$row[2].'</td> 
</tr> 
</table>'; 
} 
    mysqli_free_result($result); 
}} 

в месте вашего else состояния кода место это

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