更新用户地址表

时间:2017-06-07 13:03:01

标签: php jquery html ajax

我正在尝试更新用户地址。它成功地将记录添加到数据库中,但是当在网站上显示当前版本的地址时,我必须先重新提交。

  

要查看此页面,需要重新提交以前由Firefox发送的信息。当您重新提交数据时,将重复在表单上进行的每个操作(例如搜索或在线订单)。

文件夹profileUpdate.php中的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\n"
                . "INNER JOIN customer AS c ON a.customer_ID = c.customer_ID\n"
                . "SET a.`first_name` = ?, a.`last_name` = ?, a.`street` = ?, a.`city` = ?, a.`country` = ?, a.`zip` = ?, a.`phone_no` = ?\n"
                . "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文件



<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>
&#13;
&#13;
&#13;

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

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

如果不重新提交表单,请告诉我如何制作表格。立即显示结果?

我也尝试使用Ajax,但我在代码中有一些缺陷

&#13;
&#13;
 $(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;
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

如果您想立即查看结果,则需要采取不同的方法。 PHP无法在运行时呈现输出。然而,Ajax可以。这非常蓬松,但我建议你阅读ajax post / get calls。

此视频显示了检索数据的基础知识。显示它“活着” https://www.youtube.com/watch?v=IvagmRhTG4w&index=4&list=PLQj6bHfDUS-b5EXUbHVQ21N_2Vli39w0k

上帝dag:)