-1
我有一個動態表,可以在數據庫上執行CRUD操作。 登錄後,用戶被定向到index.php,在這裏顯示一個表,其中的值存儲在數據庫表「ajaxtable」中。我已經使用外鍵加入了「ajaxtable」表和「members」表。 如何進一步修改我的代碼,以便js文件可以從會話變量中獲取用戶的電子郵件,而不是從動態表中的輸入字段中發佈它。 我的index.php:如何在我的javascript中嵌入我的php會話變量
<?php
session_start();
$fname=$_SESSION['mail'];
?>
<html>
<title>Addressbook</title>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"> </script>
<link rel="stylesheet" type="text/css" href="crudstyle.css" />
</head>
<body bg color="">
<div id="mhead"><h2>Your Adressbook</h2></div>
<div id="note"> <span> your addressbook is connected to our servers :) </span></div>
<?php
echo $fname; // it echoes the login email correctly here
?>
<table id='demoajax' cellspacing="0">
</table>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
在我的script.js文件中的函數:
$('#demoajax').on('click','.ajaxsave',function(){
var fname = $("input[name='"+field_name[0]+"']");
//我想從會話變量
var lname = $("input[name='"+field_name[1]+"']");
var domain =$("input[name='"+field_name[2]+"']");
var email = $("input[name='"+field_name[3]+"']");
if(validate(fname,lname,domain,email)){
data = "fname="+fname.val()+"&lname="+lname.val()+"&domain="+domain.val()+"&email="+email.val()+"&actionfunction=saveData";
$.ajax({
url:"DbManipulate.php",
type:"POST",
data:data,
cache: false,
success: function(response){
if(response!='error'){
$('#demoajax').html(response);
createInput();
}
}
});
}
else{
return;
}
});
獲得本場我的DbManipulate.php文件的一部分:
function saveData($data,$con){
$fname = $con->real_escape_string($data['fname']);
//上述領域也應該從會話變量這種操作太
$lname = $con->real_escape_string($data['lname']);
$domain = $con->real_escape_string($data['domain']);
$email = $con->real_escape_string($data['email']);
$sql = "insert into ajaxtable(firstname,lastname,domain,email) values('$fname','$lname','$domain','$email')";
if($con->query($sql)){
showData($data,$con);
}
else{
echo "error";
}
}
function showData($data,$con){
$sql = "select * from ajaxtable JOIN member ON member.email=ajaxtable.firstname WHERE member.email=$fname";
$data = $con->query($sql);
$str='<tr class="head"><td>user email</td><td>contact name</td><td>contact number</td><td>contact Email</td><td></td></tr>';
if($data->num_rows>0){
while($row = $data->fetch_array(MYSQLI_ASSOC)){
$str.="<tr id='".$row['id']."'><td>".$row['firstname']."</td><td>".$row['lastname']."</td><td>".$row['domain']."</td><td>".$row['email']."</td><td>
<input type='button' class='ajaxedit' value='Edit'/> <input type='button' class='ajaxdelete' value='Delete'></td></tr>";
}
}else{
$str .= "<td colspan='5'>No Data Available</td>";
}
echo $str;
}
你可以將'script.js'重命名爲'script.js.php'並加載它。 ''。然後,你可以使用'var fname ='<?php echo $ _SESSION [「mail」]; ?>''如果我理解你的問題 – vaso123 2014-10-28 10:54:11
是否是一個有效的擴展名?所有3個文件都需要進行少量更改,我希望您能提出這些建議。 – Akash 2014-10-28 10:57:21
「fname」應該甚至不可見,以便用戶能夠進行任何更改。它應該自行發佈存儲在會話變量「郵件」中的電子郵件。在我目前的代碼中它是一個用戶可編輯的字段。 – Akash 2014-10-28 10:59:29