AJAX代码不更新表

时间:2015-11-17 13:34:36

标签: php jquery ajax

这是我的表单,我想从中更新值。当我尝试使用简单的PHP + HTML时,它的工作完美!但是,当我尝试通过ajax调用发布值时,它不起作用。请提出任何建议。

HTML

<form class="form-block" role="form" action="" method="post">
 <div class="form-group">
 <?php
 $email=$_SESSION["login_email"];
 $query=mysqli_query($con,"select * from customers where email='$email'");
 while($row=mysqli_fetch_array($query,MYSQLI_ASSOC))
{
 ?>
<label for="name">Full Name</label>
<input type="text" name="name" class="form-control"   id="name" value="<?= $row["name"]; ?>" placeholder="Full Name">
 <label for="comment">Address</label>
 <textarea class="form-control" name="address" id="address" rows="5" id="comment"  ></textarea>
<label for="telephone">Telephone</label>
<input type="tel" class="form-control" name="phone" id="phone" placeholder="Enter Mobile Number" value="" >
  <label for="city">City</label>
 <input type="text" class="form-control" name="city" id="city" placeholder="Enter City" value="<?= $row["city"]; ?>" >
  </div>
 <?php
}?>
 <input type="submit" class="btn btn-default" name="add" id="add" value="Update"/>


<span class='msg'></span>
   <div id="error"></div>
   </form>

AJAX

 $(document).ready(function() {
$('#add').click(function()
        {
            $.ajax({
                url: "address_update.php",
                type: "POST",
                async: true,
                data: { Name:$("#name").val(),Address:$("#address").val(), Phone:$("#phone").val(), City:$("#city").val()}, //your form data to post goes here as a json object
                dataType: "html",

                success: function(data) {
                    if(data)
                    {
                        //$('#output').html(data);
                        $("body").load("index.php?page=form");//.hide();//.fadeIn(1500).delay(6000);
                    }
                    else
                    {
                        $("#error").html("<span style='color:#cc0000'>Error:</span> Invalid username and password. ");
                    }}});
        });});

PHP

<?php
include ("db/db.php");
session_start();

$name=$_POST['Name'];
    $address=$_POST['Address'];
    $phone=$_POST['Phone'];
    $city=$_POST['City'];
$email=$_SESSION['login_email'];

$sql=mysqli_query($con,"Update customers set name='$name',address='$address',phone='$phone',city='$city' where email='$email'");
    if($sql)
    {
echo "updated";
    }

4 个答案:

答案 0 :(得分:3)

这个选择器:

$('#add')

找不到任何东西。因为标记中没有id="add"的HTML元素。

有一个name="add"的元素。因此,要么向该元素添加id

<input id="add" type="submit" class="btn btn-default" name="add" value="Update"/>

或更改您的选择器以定位现有元素:

$('input[name="add"]')

注意:$('#address')$('#phone')也是如此。标记中不存在此类元素。看看the jQuery documentation for selectors

答案 1 :(得分:0)

删除

下提到的IF循环
if(isset($_SESSION["login_email"]))

答案 2 :(得分:0)

此外,您需要将按钮类型从提交更改为按钮

<input type="submit" class="btn btn-default" name="add" value="Update"/>

上面发送表单,无论你添加到click事件中的是什么都是在parralel中完成的。

<input type="button" class="btn btn-default" name="add" value="Update"/>

仅在使用时执行您的JavaScript:

 $('input [name="add"]').click(function(){
   // your improved ajax call here
 }

答案 3 :(得分:0)

试试这个:

$.ajax({
    .
    .
    data: {
    'Name': $name,
    'address': $address,
    .
    .
}
});