weixin_33690367 2017-06-07 13:03 采纳率: 0%
浏览 35

更新用户地址表

I am trying to update user address. It's adding record to the database successfully, but when it comes to displaying current version of address on the website, I have to hit re-submit first.

To view this page, information previously sent by Firefox needs to be resubmitted. When you resubmit your data, each action made on the form (such as a search or online order) will be repeated.

Php code in folder profileUpdate.php

$email = $_SESSION['email'];
    if (!empty($_POST)) {
        $first_name = $_POST["first_name"];
        $last_name  = $_POST["last_name"];
        $street     = $_POST["street"];
        $city       = $_POST["city"];
        $country    = $_POST["country"];
        $zip        = $_POST["zip"];
        $phone_no   = $_POST["phone_no"];

    if (empty($first_name) || empty($last_name) || empty($street) || empty($city) || empty($country) || empty($zip) || empty($phone_no) ) {
        $response->success = false;
        $response->message = 'All fields must be filled.';
    } else {

            $sql_address_update = "UPDATE address AS a
"
                . "INNER JOIN customer AS c ON a.customer_ID = c.customer_ID
"
                . "SET a.`first_name` = ?, a.`last_name` = ?, a.`street` = ?, a.`city` = ?, a.`country` = ?, a.`zip` = ?, a.`phone_no` = ?
"
                . "WHERE (c.`email` = '". $email . "')";
            try {

                //Create customer
                $preparedStatement = $db->prepare($sql_address_update);
                $preparedStatement->bind_param('sssssii', $first_name, $last_name, $street, $city, $country, $zip, $phone_no);
                $preparedStatement->execute();


                $response->success = true;
                $response->message = 'Account created.';


                // $api=new SMSApi('Group07','129DFCF1651D3E75');
                // $reply=$api->SendEmailv2($email,"Verification","Hi. Follow this link to verify your account: https://139.59.131.217/verify.php?email=".$email."&ver=".$verificationString);
            }
            catch (Exception $e) {
                $response->success = false;
                $errorCode         = $e->getCode();
                if ($errorCode == 23000) //username and email columns are UNIQUE, this error code means violation of this rule (duplicate data)
                    {
                    $response->message = 'Duplicate username or email.';
                } else {
                    $response->message = "Error.";
                }
            }
        }
    }

$connection = null;

profile.php file

<div class="col-md-4 col-sm-6 mb-sm-10 mb-xs-30">
   <?php if(isset($_SESSION['email'])){ while($row = $result_address->fetch_assoc()){ ?>
   <h3> Address <a style="font-size:12px" id="edit">EDIT</a></h3>
   <p id="p">Name: <?php echo $row['first_name']. " " .$row['last_name'];?><br/>
      Street: <?php echo $row['street'];?><br/>
      City: <?php echo $row['city'];?><br/>
      Country: <?php echo $row['country'];?><br/>
      Zip code: <?php echo $row['zip'];?><br/>
      Phone: <?php echo $row['phone_no'];?>
   </p>
   <?php }}?>
   <!-- EDIT FORM -->
   <form method="post" action='#' id="form" role="form" onsubmit="" class="form">
      <div class="mb-20 mb-md-10">
         <!-- First Name -->
         <input type="text" name="first_name" id="first_name" class="input-md form-control" placeholder="First name" maxlength="20" required />
      </div>
      <div class="mb-20 mb-md-10">
         <!-- Last Name -->
         <input type="text" name="last_name" id="last_name" class="input-md form-control" placeholder="Surname" maxlength="100" required />
      </div>
      <div class="mb-20 mb-md-10">
         <!-- Street -->
         <input type="text" name="street" id="street" class="input-md form-control" placeholder="Street" maxlength="100" required />
      </div>
      <div class="mb-20 mb-md-10">
         <!-- City -->
         <input type="text" name="city" id="city" class="input-md form-control" placeholder="City" maxlength="100" required />
      </div>
      <div class="mb-20 mb-md-10">
         <select class="input-md form-control" type="text" id="country" name="country" required />
            <option disabled selected>Select country..</option>
            <option value="dk">Denmark</option>
            <option value="cz">Czech Republic</option>
            <option value="pl">Poland</option>
            <option value="hu">Hungary</option>
            <option value="sk">Slovakia</option>
         </select>
      </div>
      <div class="mb-20 mb-md-10">
         <!-- Zipcode -->
         <input type="text" name="zip" id="zip" class="input-md form-control" placeholder="Zip code"required />
      </div>
      <div class="mb-20 mb-md-10">
         <!-- Phonenumber -->
         <input type="text" name="phone_no" id="phone_no" data-validation="length" data-validation-length="max10" class="input-md form-control" placeholder="Phone number" required />
      </div>
      <div class="mb-20 mb-md-10">
         <button class="btn btn-mod btn-small update" type="submit" name="submit" value="update" id="updateBtn">Upadate information</button>
      </div>
   </form>
</div>

        $('#edit').on('click',function() 
         {
         $('#p, #form').toggle();
         }
         );

         $( "#updateBtn" ).click(function() {
         $( "#p" ).toggle( "slow");
         $( "#form" ).hide();
       });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

Can you please give me advice how to make it without re-submitting the form & showing result right away?

I tried to use Ajax as well but I have probabl some flaw in the code

 $(function() {
  $("#update").click(function() {
  vvar first_name = $("#first_name").val();
  var last_name = $("#last_name").val();
  var street = $("#street").val();
  var city = $("#city").val();
  var coutnry = $("#country").val();
  var zip = $("#zip").val();
  var phone_no = $("#phone_no").val();
  var dataString = 'first_name='+ first_name + '&last_name=' + last_name + '&street=' + street + '&city=' + city + '&coutnry=' + country + '&zip=' + zip; + '&phone_no=' + phone_no;

if(first_name=='' || last_name=='' || city=='' || country=='' || zip=='' || phone_no=='')
{
  //
}
else
{
  $.ajax({
    type: "POST",
    url: "profileUpdate.php",
    data: dataString,
    success: function(){
     //
    }
  });
}
return false;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

</div>
  • 写回答

1条回答 默认 最新

  • weixin_33743880 2017-06-07 13:14
    关注

    If you want to see the results right away you need to take a different approach to this. PHP can't render output at run-time. Ajax can however. This is quite fluffy but I suggest you read up on ajax post/get calls.

    This video shows the basics of retrieving data & showing it "live" https://www.youtube.com/watch?v=IvagmRhTG4w&index=4&list=PLQj6bHfDUS-b5EXUbHVQ21N_2Vli39w0k

    God dag :)

    评论

报告相同问题?

悬赏问题

  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。