Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用AJAX更新数据库_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript 用AJAX更新数据库

Javascript 用AJAX更新数据库,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,因此,我有一个车辆数据库,我制作了一个表单,用户可以更新车辆信息,然后确认是否要保存更改。问题是我觉得我仍然不理解AJAX是如何工作的,下面是Iv到目前为止所做的 这是用户用来编辑车辆信息的表单 <html> <body> <table align = 'center' cellspacing='2'> <tr> <th> Enter Vehicle Information </th> <

因此,我有一个车辆数据库,我制作了一个表单,用户可以更新车辆信息,然后确认是否要保存更改。问题是我觉得我仍然不理解AJAX是如何工作的,下面是Iv到目前为止所做的

这是用户用来编辑车辆信息的表单

<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>

输入车辆信息

您的代码过于复杂,因此更难理解和处理

首先,您不应该通过查找每个表单输入的ID来声明它,而应该使用jQuery内置的
serialize()
函数,该函数将收集所有表单数据并生成一个更简单的字符串

$.ajax({
    data: $('form').serialize(),
    success: function(data){
        console.log(data);
    }
});
另外,不要对用户数据(如$\u POST或$\u GET)使用extract,因为这是一种极不安全的处理用户数据的方法。只需使用:

<?php
if(isset($_POST['manufacturer']))
{
    echo $manufacturer;
}
?>


首先检查ajax调用是否正常,在浏览器中使用
f12
,然后检查网络或控制台部分。ajax是否工作。从ajax发送此数据:
数据:{vehicleID:vehicleID,Manufacturer:Manufacturer}
,然后,要在服务器上检索此数据,您需要将密钥
vehicleID
Manufacturer
放入
$\u POST
数组,是的,是的,
$\u POST
是一个数组。例如:
$vehicleID=$\u POST[“vehicleID”]$制造商=$_POST[“制造商”];echo$vehicleID;echo$制造商对于测试:
if(isset($\u POST[“Manufacturer”]){/…}
您不需要使用
extract
进行测试。尝试时未进行提取,但仍无法工作。另外@PriyankaSankhala我可以得到更多关于如何使用控制台的说明吗?因为我打开了控制台,但没有显示任何内容,所以我假设数据没有实际发送。@QassimAli首先添加
console.log(“此处为函数内部”)
在您的
确认编辑
功能中,检查您是否在控制台中接收到文本,然后在其他if条件下检查相同的文本如果遇到问题,请使用警报,首先调试执行控制。我按照您的步骤,将我的ajax数据更改为
$。ajax({url:'ajax.php',method:'post',data:$('form').serialize(),success:function(data){console.log(data);}}}}
并像这样添加我的ajax代码,如果(isset($\u post['Model']){echo$Model;}
但我仍然没有得到任何打印的内容。
echo$\u post['model'];
我也尝试了小写的第一个字母,但它仍然不起作用。是否有任何理由需要小写?因为元素的id以大写字母开头。
<?php
if(isset($_POST['manufacturer']))
{
    echo $manufacturer;
}
?>