обновить таблицу на странице при нажатии кнопки сохранения без обновления всей страницы

#php #jquery #ajax #json

#php #jquery #ajax #json

Вопрос:

у меня есть следующий код, в котором пользователь вводит данные, и как только он нажимает на кнопку сохранения, показанная таблица перезагружается, где отображается новая запись, если она вставлена в базу данных.таблица считывает данные из базы данных. и я использую ajax для загрузки данных и сохранения записи. вот мой html-код:

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"     "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Contact Info</title>
<link rel="stylesheet" type="text/css" href="style.css">
 <script src='jquery1.js'></script>
 <script src='jqueryTest.js'></script>
</head>
<body>
<h2>Contact Information</h2>
<p><span class="error">* required field</span></p>
Name:amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;<input type="text" id="name" >
<span class="error">* </span>
<br><br>
Email:amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;<input type="text" id="email" >
<span class="error">* </span>
<br><br>
Telephone:amp;nbsp;<input type="text" id="telephone" >
<span class="error">* </span>
<br><br>
UserName: <input type="text" id="username">
<span class="error">*</span>
<br><br>
Password:amp;nbsp;amp;nbsp;<input type="password" id="password">
<span class="error">*</span>
<br><br>
<input type="button" id="save" value="save" >
<div id="validate"></div>
<?php 
 //connect to the database
  $user=$_POST["user"];
  $pass=$_POST["pass"];
  $host=$_POST["host"];
  $connector = mysql_connect($host,$user,$pass)
      or die("Unable to connect");
  $selected = mysql_select_db("mysql", $connector)
    or die("Unable to connect");

  //execute the SQL query and return records
  $result = mysql_query("SELECT * FROM users ");
  ?>
<table border="2" style= "background-color: #99ffcc; color: #761a9b; margin: 0 auto;">
<thead>
  <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Telephone</th>
        <th>Username</th>
        <th>Password</th>
      <tbody>
        <?php
          while( $row = mysql_fetch_assoc( $result ) )
          {
           echo "<tr>
                 <td>{$row['name']}</td>
                 <td>{$row['email']}</td>
                 <td>{$row['telephone']}</td>
                 <td>{$row['username']}</td>
                 <td>{$row['password']}</td>
                 </tr>n";
           }
        ?>
     </tbody>    
   </tr>
  

это мой код javascript:

 $(document).ready(function(){
//save button listener  
$("#save").click(function(){
//receiving data entered by user from design.php        
     var name = $('#name').val();
     var email = $('#email').val();
     var telephone = $('#telephone').val();
     var username = $('#username').val();
     var password = $('#password').val(); 

$.ajax({
   type:'POST',
   url: 'contactData.php',             
   data:{"name":name,"telephone":telephone,"email":email, "username":username,   "password":password},
  // dataType:'json',
   success: function(data) {
       var result = JSON.parse(data);
       $("#validate").html(result.msg);   
                           }        
  });//end of ajax
     });//end of listener
        });//end of javascript
  

и мой php-код выглядит следующим образом:

 <?php 

//connect to the database
  $con=mysql_connect("localhost","root","");
  mysql_select_db("mysql",$con) or die(mysql_error());

 $notTaken=false;//variable to check if the username is taken or not
 $username=$_POST["username"];

//to check if username is available in the database
$query = "SELECT username FROM users"; 
$result = mysql_query($query) or die(mysql_error());
//to check if it is the first record  
$result2 = mysql_query("SELECT * FROM users", $con);
 $num_rows = mysql_num_rows($result2);

   if($num_rows==0)
   {
    //if there are still no records don't do anything for now, once out of the if will go to   validty()
  }
    else{
while($row = mysql_fetch_array($result))
   {
    if( $username == $row['username'])
      {
         $takenMsg='{"msg":"Username Taken"}' ;
         echo $takenMsg;
         $exitMSG='{"msg":"Try Another Username"}';
         exit($exitMSG);
       }
    else{
         $notTaken=true;
         }
    }
  }
// after checking if the usernname exists or not check for field valdation
validity();


//check for valididty
function validity(){
//variables obtained by ajax
$name=$_POST["name"];
$telephone=$_POST["telephone"];
$email=$_POST["email"];
$username=$_POST["username"];
$password=$_POST["password"];
//check if phone is all digits
$pattern_phone = "|^[0-9 ][0-9s -]*$|i";
//check if email is in the right form(example@example.com)
$pattern_email="/([w-] @[w-] .[w-] )/";


//validate if fields are empty
if (($name == "") || ($email == "") || ($telephone == "") || ($username == "") || ($password == "")) 
{
    $errorMsg = '{"msg":"some input is missing"}';
    echo $errorMsg;      
 } 
  //validate if email is in the right form     
  elseif (!preg_match($pattern_email, $email)) 
   {
    $errorMsg = '{"msg":"email format is incorrect"}';
       echo $errorMsg;     
   } 
   //validtae if the telephone is all digits    
   elseif (!preg_match($pattern_phone, $telephone))
   {
   $errorMsg = '{"msg":"telephone should be all digits"}';
   echo $errorMsg;      
   }
 //if all fields aquire the correct validation, insert record to database

   else
  {
    $query1=mysql_query("INSERT INTO users(name,telephone,email,username,password)  values('$name','$telephone','$email','$username','$password') ");
   //if record inserted successfully display msg indicating so
   if($query1)
    {
       $msg='{"msg":"Your info has been sent"}';
       echo $msg;
    }
//if record not inserted sucessfully display msg indicating so       
  else
    {
       $msg='{"msg":"Error in sending your info"}';
       echo $msg;
    }
}
}//end of function validity()
  

при нажатии кнопки сохранения, если все поля верны, она сохраняется в базе данных, но запись не отображается в конце таблицы, поэтому я хочу, чтобы при нажатии кнопки сохранения и сохранении записи в базе данных таблица должна быть перезагружена, и новая запись также будет показана

Ответ №1:

Поместите свою таблицу <div></div> и назначьте с идентификатором и именем, после того, как пользователь нажал кнопку сохранения, данные отправляются в базу данных и генерируют новую таблицу html с перезагрузкой данных и данных ответа ajax обратно в <div></div> назначенный.

Советы: Ajax может отвечать на html-код и отображать в <div></div>

Комментарии:

1. можете ли вы, пожалуйста, помочь, обновив code.im новичок в ajax