2017-02-19 12 views
0

テーブルにインライン編集機能を作成しようとしていますが、値を再入力して[保存]ボタンをクリックしてデータベースレコードを更新できるはずです。PHPテーブルインライン編集 - Javascript関数

javascript関数で問題が発生しました。私は、 'window.location.href'のように次のページに戻りません。これはphp update qryページで、元のページに戻ります。変更内容を表示します。

javascript関数は、古いidと、レコード内の新しいtdをすべて取得するためのもので、ユーザがインラインで編集している可能性があります。

私はid自身のためにこの作業を行っていましたが、すべての新しい値を追加すると、js関数かアクションのどちらかがうまくいけませんでしたが(正確にはわからないかもしれません)。私はmysqlがごみなどであることを知っています。

JS FUNCTION

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

TABLEアクションボタン

$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インジェクション警告**このコードはSQLインジェクションの対象となりますが、これは非常に重大なセキュリティ上の問題です。それは廃止されたmysql_ *関数を使用しています。 – jcaron

答えて

0

薄い第1グラムは、印刷しよう:

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; 


二つ目:

は、dirのではなく完全な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

こんにちはKhaled、URLを変更しました、私はまたこれを反映するように私のコードを更新したので、iveも頭の方法のabitを作った。現時点では、iveはphpの更新ページにリダイレクトされるようになりました。テスト目的のために、私はすべての値をエコーし​​ましたが、 'id'、newawb、newvsl、newcliなどでしか動作しませんでした''(ヌル)としてエコーされます。 – sanitizer

+0

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