我正在尝试更新用户地址。它成功地将记录添加到数据库中,但是当在网站上显示当前版本的地址时,我必须先重新提交。
要查看此页面,需要重新提交以前由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;
$('#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;
如果不重新提交表单,请告诉我如何制作表格。立即显示结果?
我也尝试使用Ajax,但我在代码中有一些缺陷
$(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;
答案 0 :(得分:0)
如果您想立即查看结果,则需要采取不同的方法。 PHP无法在运行时呈现输出。然而,Ajax可以。这非常蓬松,但我建议你阅读ajax post / get calls。
此视频显示了检索数据的基础知识。显示它“活着” https://www.youtube.com/watch?v=IvagmRhTG4w&index=4&list=PLQj6bHfDUS-b5EXUbHVQ21N_2Vli39w0k
上帝dag:)