我有 PHP 网页,需要在其中插入一些信息到我的数据库中。插入完成后,它会刷新同一页面。但我被告知这个过程不切实际,因为你正在加载所有HTML
, CSS
, and JS
每次都会显示您的页面。我应该你AJAX
要做到这一点。
我搜索它,并尝试了这段代码:
$("#insert").click(function(){
//get the form values
var selectType = $('#selectW').val();
var selectcom = $('#select_at').val();
var pay = $('#pay').val();
var facture = $('#facture').val();
var selectcur = $('#select').val();
//make the postdata
//var postData = 'username='+username+'&name='+name+'&brand='+brand;
//call your input.php script in the background, when it returns it will call the success function if the request was successful or the error one if there was an issue (like a 404, 500 or any other error status)
$.ajax({
url : "insert.php",
type: "POST",
data : postData,
success: function(data,status, xhr)
{
//if success then just output the text to the status div then clear the form inputs to prepare for new data
$("#section2").html(data);
$('#pay').val('');
$('#selectcur').val('');
},
error: function (jqXHR, status, errorThrown)
{
//if fail show error and server status
$("#section2").html('there was an error ' + errorThrown + ' with status ' + textStatus);
}
});// JavaScript Document
这是我的PHP-PDO
我删除的代码header
行并将其替换为echo("something")
:
if(isset($_POST['insert'])){
$selectOpt1 = $_POST['currency'];
if($selectOpt1=="9"){
$type = $_POST['type'];
$provider = $_POST['alfa_touch'];
$pay = $_POST['pay'];
$facture = $_POST['facture'];
try{
$query = "INSERT INTO sales
(type, provider, pay, facture, date_now, time_now)
VALUES
(:type, :provider, :pay, :facture, :date, now())";
$stmt = $conn->prepare($query);
$stmt->bindValue(":type", $type);
$stmt->bindValue(":provider", $provider);
$stmt->bindValue(":pay", $pay);
$stmt->bindValue(":facture", $facture);
$stmt->bindValue(":date", date("y-m-d"));
$count = $stmt->execute();
//header("location: home.php");
echo ("Done");
}
catch(PDOException $e) {
echo $e->getMessage();
//header("location: ../pages/insert_false.php?id=".$projid);
print_r($conn->errorInfo());
}
}
}
现在,当我单击插入按钮时,数据已正确添加到 MySQL 数据库,但是应用程序停留在 insert.php 和 echo 中Done
。我需要的是留在同一页面。任何帮助表示赞赏。
EDIT
$("#insert").click(function(){
//get the form values
var selectType = $('#selectW').val();
var selectcom = $('#select_at').val();
var pay = $('#pay').val();
var facture = $('#facture').val();
var selectcur = $('#select').val();
//make the postdata
var postData = 'username='+username+'&name='+name+'&brand='+brand;
//call your input.php script in the background, when it returns it will call the success function if the request was successful or the error one if there was an issue (like a 404, 500 or any other error status)
$.ajax({
url : "insert.php",
type: "POST",
data : postData,
success: function(data,status, xhr)
{
//if success then just output the text to the status div then clear the form inputs to prepare for new data
$("#section2").html(data);
$('#pay').val('');
$('#selectcur').val('');
},
error: function (jqXHR, status, errorThrown)
{
//if fail show error and server status
$("#section2").html('there was an error ' + errorThrown + ' with status ' + textStatus);
}
});
return false;
});// JavaScript Document
还是同样的问题。这是我的 HTML 表单:
<form name="insertForm" action="insert.php" method="post">
<tr>
<td align="center">
<select id="selectW" name="type">
<option value="Choose">Choose</option>
<option value="Dollars">Dollars</option>
<option value="D & D">D & D</option>
<option value="Cards">Cards</option>
<option value="Phones">Phones</option>
<option value="Acc">Acc</option>
<option value="Bills">Bills</option>
</select>
<!--<select>
<?php foreach($result5 as $rows){ ?>
<option value="<?php echo $rows['item_name'] ?>"><?php echo $rows['item_name'] ?></option>
<?php } ?>
</select>-->
</td>
<td align="center"><select id="select_at" name="alfa_touch">
<option value="Undefined">Not Required</option>
<option value="Alfa">Alfa</option>
<option value="Touch">Touch</option></select></td>
<td align="center"><input type="text" id="pay" name="pay"/></td>
<td align="center"><input type="text" id="facture" name="facture" placeholder="في حال دفع الفواتير عبر omt"/></td>
<td align="center"><select id="select" name="currency">
<option value="9">LBP</option>
<option value="10">Dollars</option>
</select></td>
<td align="center"><input type="submit" id="insert" name="insert" value="insert" />
</td>
</tr>
</form>