2017-02-19 5 views
0

Я пытаюсь создать встроенную функцию редактирования в своей таблице, пользователь должен иметь возможность повторно указывать значения и нажать кнопку «Сохранить», чтобы обновить запись базы данных.PHP inline editing - Javascript Function

Я столкнулся с проблемой с функцией javascript, не возвращая меня на следующую страницу в соответствии с «window.location.href», которая была бы страницей обновления php update, которая вернет меня на исходную страницу для просмотра сделанных изменений.

Функция javascript предназначена для получения старого идентификатора и всех возможных новых td внутри записи, которые пользователь может редактировать внутри.

У меня было это для самого идентификатора, но с добавлением всех новых значений, Ive перепутал либо с функцией js, либо с действием, но (может ли это «?») Не совсем точно. Я знаю, что mysql - это мусор и т. Д., В то время я фокусируюсь на функциональности.

JS ФУНКЦИЯ

function edit_user(id,a,b,c,d,e,f,g,h,i,j,k) { 

var tr = a.parentNode.parentNode; 
var awb = String(tr.querySelector(".a").innerHTML); 

var tb = b.parentNode.parentNode; 
var del = String(tb.querySelector(".b").innerHTML); 

var tc = c.parentNode.parentNode; 
var vsl = String(tc.querySelector(".c").innerHTML); 

var td = d.parentNode.parentNode; 
var cli = String(td.querySelector(".d").innerHTML); 

var te = e.parentNode.parentNode; 
var pcs = String(te.querySelector(".e").innerHTML); 

var tf = f.parentNode.parentNode; 
var wgt = String(tf.querySelector(".f").innerHTML); 

var tg = g.parentNode.parentNode; 
var car = String(tg.querySelector(".g").innerHTML); 

var th = h.parentNode.parentNode; 
var snd = String(th.querySelector(".h").innerHTML); 

var ti = i.parentNode.parentNode; 
var stt = String(ti.querySelector(".i").innerHTML); 

var tj = j.parentNode.parentNode; 
var ard = String(tj.querySelector(".j").innerHTML); 

var tk = k.parentNode.parentNode; 
var ctm = String(tk.querySelector(".k").innerHTML); 

// run query on server: 
window.location.href = 'http://at-web2.comp.glam.ac.uk/students/14075377/14075377/php/edit-livedashboard-import.php?id='+id+'&newawb='+awbno+'&newvsl='+vsl+'&newcli='+cli+'&newpcs='+pcs+'&newwgt='+wgt+'&newcar='+car+'&newsnd='+snd+'&newstt='+stt+'&neward='+ard;; 
return false;} 

ТАБЛИЦА ДЕЙСТВИЯ КНОПКА

$awb = $get_info["AwbNo"]; 
echo "<a href='' onclick='return edit_user($awb,here,here,here,here,here,here,here,here,here);'>&nbspSave&nbsp</a>"; 

PHP UPDATE

include("../dbinfo.inc.php"); 
[email protected]_connect(localhost,$username,$password); 
[email protected]_select_db($database) or die("Unable to select database"); 

$id = $_GET['id']; 
$newawb = $_GET['awbno']; 
$newvsl = $_GET['vsl']; 
$newcli = $_GET['cli']; 
$newpcs = $_GET['pcs']; 
$newwgt = $_GET['wgt']; 
$newcar = $_GET['car']; 
$newsnd = $_GET['snd']; 
$newstt = $_GET['stt']; 
$neward = $_GET['ard']; 

$sql = "UPDATE tbl_import SET AwbNo='$newawb',ClientCode='$newcli',VesselName='$newvsl',Pieces='$newpcs',Weight='$newwgt',Carrier='$newcar',Sender='$newsnd',Status='$newstt',ArrivalDate='$neward',WHERE AwbNo='$id';"; 

echo ("id=$id,awb=$newawb,vsl=$newvsl,cli=$newcli,pcs=$newpcs,wgt=$newwgt,car=$newcar,send=$newsnd, status=$newstt, date=$neward .\n\n\n"); 

mysql_query($sql)or die("Update Error: ".mysql_error()); 
mysql_close();   
//commented header so can see echoed vals sent from js 
//header("Location: ../livedashboard.php"); //redirect to relevant page 
+1

Вы слышали о петлях? – jcaron

+0

Также ** SQL injection alert **. Этот код подвержен SQL-инъекциям, что является очень серьезной проблемой безопасности. И он использует функции mysql_ *, которые устарели. – jcaron

ответ

0

Первый тонкий г попытке печати:

console.log('php/edit-livedashboard-import.php?id='+id+awb+del+vsl+cli+pcs+wgt+car+snd+stt+ard+ctm); 

это должно быть так:

'php/edit-livedashboard-import.php?id='+id+ '&awb='+awd+'&del='+del...etc; 


Вторая вещь:

Добавить полный URL вместо директории:

window.location.href = 'php/edit-livedashboard-import.php?id='+id+aw...; 

отл.

window.location.href = 'http://example.com/php/edit-livedashboard-import.php?id=...'; 
+0

Привет, Халед, изменил URL-адреса, а также сделал abit с головы, поэтому обновил мой код, чтобы отразить это. На данный момент ive удалось заставить его перенаправить на страницу обновления php и в целях тестирования im imchoing all the values, НО только его работа с «id», newawb, newvsl, newcli и т. Д. Не передает никаких данных и повторяется как «(null). – sanitizer

+0

Должно быть так: '' php/edit-livedashboard-import.php? Id = '+ id +' & awb = '+ awd +' & del = '+ del ... etc; ' –