【发布时间】:2019-12-14 18:07:56
【问题描述】:
所以我有一个车辆数据库,我制作了一个表格,用户可以在其中更新车辆信息,然后确认他/她是否要保存更改。问题是我觉得我仍然不了解 AJAX 是如何工作的,这就是我到目前为止所做的。
这是用户用来编辑车辆信息的表格。
<html>
<body>
<table align = 'center' cellspacing='2'>
<tr>
<th> Enter Vehicle Information </th>
</tr>
<form enctype = 'multipart/form-data' method = 'post' action = '' >
<?php
if($v = $Vehicle->fetch())
{
?>
<input type = "hidden" id='vID' value = '<?php echo $v['Vehicle_N'];?>'/>
<img src = "Vehicles/<?php echo $v['Image']?>" height = 100 width = 100 > </img>
<tr>
<td>Vehicle Manufacturer
<select id = "Manufacturer" value = '<?php echo $v['Manufacturer'];?>'>
<?php
foreach($Manu as $m)
{?>
<option value = '<?php echo $m['Manufacturer'] ?>'> <?php echo $m['Manufacturer'] ?></option>
<?php
}
?>
<option> <a href='test.php'> + Add New</a></option>
</select>
</td>
</tr>
<tr>
<td>Vehicle Model <input id = "Model" value = '<?php echo $v['Model'];?>'/> </td>
</tr>
<tr>
<td> Model Year <input type = 'number' id = "modelYear" min='1990' max='2020' value = '<?php echo $v['Model_Year'];?>'/> </td>
</tr>
<tr>
<td> State of Vehicle <input id = "State" value = '<?php echo $v['State'];?>'/> </td>
</tr>
<tr>
<td> Color <input id = "Color" value = '<?php echo $v['Color'];?>'/> </td>
</tr>
<tr>
<td>
Vehicle Type
<select id = "Type" value = '<?php echo $v['Type'];?>'>
<?php
foreach($vehicleTypes as $vt)
{?>
<option value = '<?php echo $vt ?>'> <?php echo $vt ?></option>
<?php
}
?>
</select>
</td>
</tr>
<tr>
<td> License plate No. (If there is one) <input type = 'number' id = "licensePlate" value = '<?php echo $v['License_Plate_N'];?>' /> </td>
</tr>
<tr>
<td> Sale Price <input type = 'number' id = "salePrice" value = '<?php echo $v['Sale_Price'];?>'/> </td>
</tr>
<tr>
<td> Rent Price <input type = 'number' id = "rentPrice" value = '<?php echo $v['Rent_Price'];?>'/> </td>
</tr>
<tr>
<td> Stock <input type = 'number' id = "Stock" value = '<?php echo $v['Stock'];?>' /> </td>
</tr>
<tr>
<td><p>Vehicle Description<textarea id="Description" rows="2" cols="18" > <?php echo $v['Description'];?> </textarea></p> </td>
</tr>
<tr>
<td>Vehicle Image <input id = "i" type = 'file' /> </td>
</tr>
<tr>
<td> <a href = '#' data-role = "update" data-id = "<?php echo $v['Vehicle_N'];?>" Onclick="confirm_edit()"> Update </a> </td>
</tr>
<?php
}
?>
</form>
</table>
<script>
function confirm_edit(){
if(confirm("Save changes?") === true){
var vehicleID = document.getElementById("vID");
var Manufacturer = document.getElementById("Manufacturer");
var Model = document.getElementById("Model");
var modelYear = document.getElementById("modelYear");
var State = document.getElementById("State");
var Color = document.getElementById("Color");
var Type = document.getElementById("Type");
var salePrice = document.getElementById("salePrice");
var rentPrice = document.getElementById("rentPrice");
var Stock = document.getElementById("Stock");
var i = document.getElementById("i");
var Description = document.getElementById("Description");
$.ajax({
url: 'ajax.php',
method: 'post',
data: {vehicleID : vehicleID, Manufacturer : Manufacturer},
success: function(response){
console.log(response);
}
});
}else{
return false;
}
}
</script>
这只是我在尝试更新数据库中的表之前编写的一些代码,用于测试它是否正常工作,但它没有打印变量,所以我假设它不工作。
<?php
extract($_POST);
if(isset($Manufacturer))
{
echo $Manufacturer;
}
?>
如果有人可以告诉我我的错误,因为我仍然遇到 AJAX 问题,因为我是新手。我希望用户确认他/她是否要保存更改,然后通过 AJAX 更新我数据库上的表。
【问题讨论】:
-
首先检查 ajax 调用是否正常工作或不在浏览器中使用
f12并检查网络或控制台部分。 ajax 工作与否。 -
您从 Ajax 发送此数据:
data: {vehicleID : vehicleID, Manufacturer : Manufacturer}然后,要在服务器上检索此数据,您需要找到键vehicleID和Manufacturer到$_POSTarray,是的,是的,$_POST是一个数组。例如:$vehicleID=$_POST["vehicleID"]; $manufacturer=$_POST["Manufacturer"]; echo $vehicleID; echo $manufacturer;和测试:if(isset($_POST["Manufacturer"])) { //...}你不需要为此使用extract。 -
试过不解压,还是不行。 @PriyankaSankhala 我可以更详细地说明如何使用控制台,因为我打开它并没有显示任何内容,所以我假设数据实际上没有被发送。
-
@QassimAli 首先在您的
confirm_edit函数中添加console.log("here inside function);并检查您是否在控制台中收到文本,然后在其他情况下检查是否相同,如果遇到问题,请使用警报,首先调试执行控制的去向
标签: javascript php jquery html ajax