I have a form that updates data. When I click on update button, it updates the data in the database but shows the old data in the form, and I have to refresh the page again to view the updated data. If I change the action of the page, it stops updating the data.

I want the update page to update data when the user clicks on 'Submit' Button.

Kindly tell me the way to overcome this problem.

Thanks

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<script>


</script>
<link rel="stylesheet" type="text/css" href="stylesheet_dashboard.css"  />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Update Single Products</title>
</head>

<body>
<div id='Header'>
Logo
</div>
</body>
</html>

<?php
session_start();
if (isset ($_SESSION['username']) )
{

    //echo "<div id='nav'";
    echo "<ul><hr>
     <li><a href='insert_product.php' >Add Product  </a></li>   
     <li><a href='add_category.php'> Add Category </a></li> 
      <li><a href='add_sub_category.php'> Add Sub-Category </a></li>    
     <li><a href = 'view_products.php'  >View All Products</a>  </li>
     <li><a href = 'all_categories.php'  >View All Categories</a>  </li>
      <li><a href='view_all_sub_categories.php'>View All Sub Categories</a></li>

     </ul></hr>";



include 'connect.php';  
$id= $_GET['product_id'];
error_reporting(E_PARSE);
if (isset($id))
{
    //$order_id =array();


echo "<a href='view_products.php' >view Products </a>";

    /*  $select_query=  "select * from products Left join product_description 
        ON products.product_id=$id and product_description.product_id=$id";
        */
        /*
            $select_query=  "select * from products Left join product_description 
                    ON products.product_id=$id and product_description.product_id=$id";
            */
            /*
                                $select_query= "SELECT products.*,product_description.* FROM products
                                    INNER JOIN product_description
                        ON (products.product_id=$id AND product_description.product_id=$id 
                                )";     
                    */

                            $select_query=  "select * from products LEFT JOIN product_description 
                            ON products.product_id='".$id."' and 
                            product_description.product_id='".$id."' 
                            where products.product_id='".$id."'     ";

                    global $order_id;
                    global $i;      
                    global $location;

                        //  $image_form_query =     "select * from product_images where product_id= $id";
                        //  $image_form_run=        mysql_query($image_form_query);
                        //  $image_form_fetch=      mysql_fetch_array($image_form_run);
                        //  echo  'File     '.$image_from_fetch['name'];






            if(!$select_query_run=   mysql_query($select_query))
            {
                echo mysql_error();

                    }

            else

            {
                $product_images         ="select * from product_images where product_id=$id";
                $product_images_run     =mysql_query($product_images);


                while ($product_images_fetch    =mysql_fetch_array($product_images_run))
                {
                $location[]             =$product_images_fetch['images'];                       
                }




                $select_query_run2=  mysql_query($select_query);
                $fetch =     mysql_fetch_array ($select_query_run2);        
                 $fetch['product_id'];


                echo "  
                <form action='update_single_product.php?product_id=$id' method='POST'
                 enctype='multipart/form-data' >
                <table border=1>
                <tr>
                <td>

                <label>Product Name:</label> </td>  <td><input type='text' 
                name='product_name' value='".$fetch['name']."'  />*Required</td></tr>


                <tr><td><label>Item No:</label></td> <td><input type='text' 
                                name='item_no' value='".$fetch['item_no']."'></td></tr>


                <tr><td>Recipient   </td>   <td> <input type='text'
                                 name='recipient' value='".$fetch['recipient']."'  ></td></tr> 


                <tr><td>    Total Carat Weight</td> <td><input type='text' 
                                name= 'total_carat_weight' value='".$fetch['total_carat_weight']."' ></td></tr>


                <tr><td>    Metal </td><td><input type='text'
                                 name='metal'   value='".$fetch['metal']."' ></td></tr>


                <tr><td>    Stone Shape </td><td><input type='text'
                                 name='stone_shape' value='".$fetch['stone_shape']."' ></td></tr>


                <tr><td>    Stone Type</td><td> <input type='text'
                                 name='stone_type'  value='".$fetch['stone_type']."'></td></tr> 


                <tr><td>    Stone Setting</td><td> <input type='text'
                                 name='stone_setting'   value='".$fetch['stone_setting']."'></td></tr> 


                <tr><td>    Wastage </td><td><input type='text' 
                                name='wastage'  value='".$fetch['wastage']."'></td></tr></br></br>


                <tr><td>    Retail_price </td><td><input type='text'
                                 name='retail_price' value='".$fetch['retail_price']."'></td></tr>


                <tr><td>    Actual Price: </td><td> <input type= 'text'
                                 name= 'actual_price' value='".$fetch['actual_price']."' /></td></tr>*Required


                <tr><td>    Description:</td><td><input type='text'
                                 name='description'  value='".$fetch['description']."' /></td></tr>


                <tr><td>    Image1:</td><td> <input type='file'
                                 name= 'files[]' > 
                                 <img src='$location[0]' height='60' width='60' >   </td></tr> *Required


                <tr><td>    Image2:</td><td> <input type='file' 
                                name= 'files[]' >
                                <img src=  '$location[1]' height='60' width='60'>
                                </td></tr>


                <tr><td>    Image3:</td><td> <input type='file'
                                 name= 'files[]' >
                                 <img src = '$location[2]' height='60' width='60'>
                                 </td></tr></table> ";


    /*------------------
    Drop Down List Start
    ------------------  */      


                echo "<select name='category'>";

                    $select_query=          'Select * from category';
                    $select_query_run =     mysql_query($select_query);

                    $sub_category_query=    "Select * from sub_categories";
                    $sub_query_run=         mysql_query($sub_category_query);



                while   ($select_query_array=   mysql_fetch_array($select_query_run) )
                {

                            echo "<option value='".$select_query_array['category_id']."' >".
                            htmlspecialchars($select_query_array["name"]).

                            "<option value='".$sub_query_run['sub_category_id']."'  >" .
                            htmlspecialchars($sub_query_run['sub_category_name']).   "</option>".

                    "</option>";




                }

                echo "</br>";

                 $selectTag= "</br><input type='submit' value='Update Product'  /></select></form>";



                 echo "</div></div>";

                 echo $selectTag;


                     //NEW $_POST ADDING 
                     //To Avoid Update Problem

                 if (isset($_POST['product_name']) || isset ($_POST['item_no']) || isset ($_POST['recipient'])
                || isset($_POST['total_carat_weight']) || isset ($_POST['metal']) || isset($_POST['stone_shape'])
                || isset($_POST['stone_setting']) || isset($_POST['wastage'])  || isset($_POST['retail_price'])
                ||  isset($_POST['actual_price']) && isset($_POST['description'])   )
                     {



    /*-----------------
    Drop Down List End
    ------------------*/    

                                $product_name =         $_POST['product_name'];
                                $item_no=               $_POST['item_no'];
                                $recipient=             $_POST['recipient'];
                                $total_carat_weight=    $_POST['total_carat_weight'];
                                $metal=                 $_POST['metal'];
                                $stone_shape=           $_POST['stone_shape'];
                                $stone_type=            $_POST['stone_type'];
                                $stone_setting=         $_POST['stone_setting'];
                                $wastage=               $_POST['wastage'];
                                $retail_price=          $_POST['retail_price'];
                                $actual_price=          $_POST['actual_price'];
                                $description=           $_POST['description'];



                                $query= "Update products set name='".$product_name."'  
                                where product_id=$id";

                                $query2="Update product_description set recipient='".$recipient."' ,
                                        total_carat_weight='".$total_carat_weight."', metal='".$metal."',
                                        stone_shape='".$stone_shape."' , stone_type='".$stone_type."',
                                        stone_setting='".$stone_setting."', wastage='".$wastage."',
                                        retail_price='".$retail_price."',
                                         actual_price='".$actual_price. "',
                                         description='".$description."'
                                        where product_id=$id ";

                                        $insert_query=  "insert into product_description 
                                                VALUES($id,'$item_no','$recipient',
                                                '$total_carat_weight','$metal','$stone_shape',
                                                '$stone_type','$stone_setting', '$wastage',
                                                '$retail_price','$price' ,'$description'    ) ";

                                                $insert_query_run=  mysql_query($insert_query);

                                $query_run= mysql_query($query); 
                                $query_run2= mysql_query($query2) ;


                                /*-----------------
                                    IMAGE QUERY 2
                                ------------------*/
                            /*      

                            if (isset($_FILES['files'])
                            ||  ($_FILES["files"]["type"]   == "image/jpeg"))

                            {

                                foreach($_FILES['files']['tmp_name'] as $key=> $tmp_name)
                                    {

                                        //echo $tmp_name."<br>";

                                        echo 'number<br>';
                                        echo    $image_name=        $_FILES["files"]["name"][$key];  

                                        $random_name=       rand().$_FILES["files"]["name"][$key];

                                        $folder="upload/products/" .$random_name;                       

                                        move_uploaded_file($_FILES["files"]["tmp_name"][$key],
                                                    "upload/products/" . $random_name);




                                echo '<br>';                            
                                echo    $sql= "update product_images set name= '$random_name', 
                                            images= '$folder' where product_id= $id ";                              

                                                if ($query_run= mysql_query($sql))
                                                {

                                                    echo '<br>';
                                                    echo 'Done';
                                                    }

                                                    else
                                                    {
                                                        echo mysql_error();
                                                        }


                            }

                        }

                            */                                                                              
                                    /*-----------------
                                     IMAGE QUERY 2- END
                                    ------------------*/
                        /*
                        echo "Print Arrray </br>";
                        print_r ($_FILES['files']['name']);         
                        echo "Print Arrray </br>";

                        */
                                    /*-------------------
                                    IMAGE-QUERY Test 002
                                    --------------------*/
            $allowedExts = array("gif", "jpeg", "jpg", "png");
            $extension = end(explode(".", $_FILES["files"]["name"]));



                            if (isset($_FILES['files'])
                            ||  ($_FILES["files"]["type"]   == "image/jpeg")
                                    && in_array($extension, $allowedExts))

                            {
                                //$i=1;
                                    echo "Printing Number Count </br>";
                                    echo count($_FILES['files']);
                                    echo "<br>Counting End";

                                    //print_r($_FILES['files']['name']);
                                    //echo "$_FILES['files']['name']";      
        /*-----------------------
        Taking Current Order_id
        ------------------------*/

        //$order_sql=           "select MAX(ord) from product_images";

            $order_sql=         "SELECT ord from product_images where product_id=$id";                      


            $order_sql_run=     mysql_query($order_sql);


            echo mysql_error();                 
            //UNDOOOO ooo OOo oooOO oOo oOOOoo OooO oOo
            if ($_FILES['files']['name']=="")
            {
                echo "No Update";   
                    }

                    else
                        {   


$uploaded_files = array_filter($_FILES['files'], function($file){ 
    return $file['size']; 
});
echo "Stack    ";
print count($uploaded_files);
echo "Stack    ";            


        //  for($i=0; $i<=  $order_fetch=mysql_fetch_array($order_sql_run) ; $i++)  
        for($i=0; $i<=  $order_fetch=mysql_fetch_array($order_sql_run) ; $i++)  


            // while ($order_fetch=     mysql_fetch_array($order_sql_run))
             {              


                //echo  'ID '.          $order_id[$i]=$order_fetch[(ord)] ;
                                        $order_id[$i]=$order_fetch[(ord)] ;

                                        //  foreach($_FILES['files']['tmp_name'] as $key=> $tmp_name)
                                //  {
                                        //$image_sql= "select image_id from product_images where ";




                                        //echo $tmp_name."<br>";

                                        //echo 'number<br>';
                                    //  echo    $image_name=        $_FILES["files"]["name"][$key];  

                                        $image_name=        $_FILES["files"]["name"][$i];                                       

                                    //Old Method Of Taking Name
                                        $random_name=       rand().$_FILES["files"]["name"][$i];


                                    //New Method of taking Name
                            /*      
                                $image_extension=           $_FILES["files"]["name"];                               
                                $image_extension_pos=       strpos($image_extension,'.');
                        echo    "ImageExtension ".  $image_extension_substr=    
                        substr($image_extension,$image_extension_pos,5);
                                */      

                                        //$random_name=     rand().$i;

                                        $random_name=       rand().$_FILES["files"]["name"][$i];

                                        $folder="upload/products/" .$random_name;                       

                                        move_uploaded_file($_FILES["files"]["tmp_name"][$i],
                                                    "upload/products/" . $random_name);


                                //print_r ($order_id);

                    /*          
                        echo    'Val1   '.  $val1=   $order_id[1];
                        echo    'Val2   '.  $val2=   $order_id[2];
                        echo    'Val3   '.  $val3=   $order_id[3];
                        */                          
                                echo '<br>';    




                                echo    $sql= "update product_images set name= '$random_name', 
                                            images= '$folder' where product_id= $id and 
                                            ord=$order_id[$i] ";        

                            /*  
                            echo    $sql= "update product_images set name= '$random_name', 
                                            images= '$folder' where product_id= $id and 
                                            ord=$val1 ";

                        echo        $sql2= "update product_images set name= '$random_name', 
                                            images= '$folder' where product_id= $id and 
                                            ord=$val2 ";

                        echo        $sql3= "update product_images set name= '$random_name', 
                                            images= '$folder' where product_id= $id and 
                                            ord=$val3 ";
                                */          
                            //  mysql_query($sql2);
                            //  mysql_query($sql3);         


                                                if ($query_run= mysql_query($sql))
                                                {
                                                    //mysql_query ($sql2);

                                                    //mysql_query ($sql3);                                                  
                                                    echo '<br>';
                                                    echo 'Done';
                                                    header ('Location:view_products.php ');
                                                    }

                                                    else
                                                    {
                                                        echo mysql_error();
                                                        }
                                        }


                                //i=$i+1;
                            }

                        //}


                                    /*-------------------
                                    IMAGE-QUERY Test 002
                                    --------------------*/








                }
                //echo 'Printing Array<br>';






        /*-----------------------
        Taking Current Order_id
        ------------------------*/                  




                                if($query_run && $query2)
                                {


                                    echo "Records have been inserted. Please go to 
                                                <a href='view_products.php'>View Products page</a>to see the Updates";

                                    }

                                    elseif (mysql_affected_rows()==1)
                                    {
                                            $insert_query=  "insert into product_description 
                                                VALUES($id,'$item_no','$recipient',
                                                '$total_carat_weight','$metal','$stone_shape',
                                                '$stone_type','$stone_setting', '$wastage',
                                                '$retail_price','$price' ,'$description'    ) ";

                                            if ($insert_query_run=  mysql_query($insert_query))
                                            {
                                                echo "<br> Insert Query Runs!!! </br>"; 
                                                }
                                                else
                                                {
                                                    echo mysql_error();
                                                    }

                                        }

                                    else
                                    {
                                        echo mysql_error()."Please fill the Required Fields";
                                        }
                     }

    }
}
else
{
    echo "Invalid Product! Go back to";
    echo "<a href='dashboard.php'> Dashboard</a>";
    }
}

else
{
    echo "You Must need to Log in To Visit this Page!";

    }
?>
有帮助吗?

解决方案

I assume you have a page that handles the update right? Well after the update you should an an header('Location:'); to page you want to go back to. This should solve your problem.

其他提示

If you are posting data on same page then try following.

<input type='text' value='<?php echo $_POST['field_name']; ?>' name='field_name' />

like wise you can use for all input.

Also you can use AJAX

Please follow this link, it is already answered here

I recommended you to use AJAX call functions

<script type="text/javascript">
function updatePage() {
    $.get("your php file name here", function() {
      location.reload();
    });
}
</script>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top