2016-05-07 1 views
0

Я искал другие темы, чтобы найти решение для этого, но ничего. У меня есть форма, и я хочу обновить значения ввода формы при нажатии кнопки обновления. Код, который я с помощью в Ajax являетсяТаблица не обновлена ​​с помощью Ajax и Mysql

$("#updateit").click(function() { 

    var surname = $("#search_text").val(); 
    var name = $("#name").val(); 
    var company_name = $("#company_name").val(); 
    var firm = $("#firm").val(); 
    var address = $("#address").val(); 
    var town = $("#town").val(); 
    var tk = $("#tk").val(); 
    var country = $("#country").val(); 
    var telephone = $("#telephone").val(); 
    var fax = $("#fax").val(); 
    var mobile = $("#mobile").val(); 
    var web_site = $("#web_site").val(); 
    var visitors = $("#visitors").val(); 
    var id = $("#id").val(); 
     $.ajax({ 
      url: 'update1.php', 
      type: 'POST', 
     data: {surname:'surname',name:'name',company_name:'company_name',firm:'firm',address:'address',town:'town',tk:'tk',country:'country',telephone:'telephone',fax:'fax',mobile:'mobile',mail:'mail',web_site:'web_site',visitors:'visitors',id:'id'} , 
dataType:'html', 
      success: function(data) 
         {   
alert(data);       
         } 
     }); 
    }); 

PHP файл для обновления значений заключается в следующем:

<?php 
require('db.php'); 
include("auth.php"); 
date_default_timezone_set('Europe/Athens'); 
$id=$_POST['id']; 
$surname =$_POST['surname']; 
$name= $_POST['name']; 
$company_name=$_POST['company_name']; 
$firm= $_POST['firm']; 
$address= $_POST['address']; 
$town= $_POST['town']; 
$tk= $_POST['tk']; 
$country= $_POST['country']; 
$telephone= $_POST['telephone']; 
$fax= $_POST['fax']; 
$mobile= $_POST['mobile']; 
$mail= $_POST['mail']; 
$web_site= $_POST['web_site']; 
$visitors= $_POST['visitors']; 

$update="update base set surname='".$surname."', name='".$name."',company_name='".$company_name."',firm='".$firm."',address='".$address."',town='".$town."',tk='".$tk."',country='".$country."',telephone='".$telephone."',fax='".$fax."',mobile='".$mobile."',web_site='".$web_site."',visitors='".$visitors."' where id='".$id."'"; 
mysql_query($update) or die(mysql_error()); 
$status = "Record Updated Successfully. </br></br><a href='view.php'>View Updated Record</a>"; 
echo '<p style="color:#FF0000;">'.$status.'</p>'; 

?> 

Любая помощь оценили

+0

Совет: используйте serialize() https://api.jquery.com/serialize/ – Salines

+0

Что такое ошибка в консоли? Вы пытались print_r ($ _ POST); в вашем php-файле? – Poria

+0

Функции интерфейса mysql_ устарели. Новая разработка должна использовать либо mysqli, либо PDO. PHP-код, похоже, уязвим для SQL-инъекций. Потенциально небезопасные значения, включенные в текст SQL, должны быть надлежащим образом экранированы. Лучше всего использовать * подготовленные операторы * с * bind placeholders *. – spencer7593

ответ

1

Проблема в том, что в следующей строке в запросе AJAX,

data: {surname:'surname',name:'name',company_name:'company_name',firm:'firm',address:'address',town:'town',tk:'tk',country:'country',telephone:'telephone',fax:'fax',mobile:'mobile',mail:'mail',web_site:'web_site',visitors:'visitors',id:'id'} 

вы» re фактически отправляет строки, такие как surname, company_name и т. д., а не значение переменных. Поэтому удалите эти одинарные кавычки. Должно быть,

data: {surname:surname,name:name,company_name:company_name,firm:firm,address:address,town:town,tk:tk,country:country,telephone:telephone,fax:fax,mobile:mobile,mail:mail,web_site:web_site,visitors:visitors,id:id} 

Sidenote: Не используйте mysql_ расширения базы данных, они были устаревшими в PHP 5.5.0 и удаляются полностью в PHP 7.0.0. Используйте вместо этого mysqli или PDO. И это why you shouldn't use mysql_ functions.

+0

nope ничего он даже не возвращает предупреждение (данные) в ajax, когда раньше делал – Aristain

+0

@Aristain * hmm *, это потому, что 'mail' не определен. См. Эту строку, 'data: {..., mail: mail, ...}' в вашем запросе AJAX. У вас должна быть переменная с именем 'mail', например: var mail = $ (" # mail "). Val();'. –

+0

Спасибо, что сейчас как шарм – Aristain

2

данные, передаваемые через AJAX не правильно сформирован. Оно должно быть:

var data = {'surname':surname,'name':name,'company_name':company_name .....}

, а не фамилия: 'фамилия'

+0

nope ничего он даже не возвращает предупреждение (данные) в ajax, когда раньше делал – Aristain

+0

, вы можете следить за этой отладкой st eps: 1. используйте console.log, чтобы распечатать все переменные, захваченные из каждого dom. 2. добавить ошибку: function (data) {} и done: function (data) {} to ajax 3. изменить dataType с 'html' на 'text' для отладки 4.in PHP, использовать echo или var_dump для проверки всех переменных , – Kelvin

Смежные вопросы