在我从DATABASE获得答案后,我使用AJAX并使用PHP生成HTML代码。 第一部分工作greate,我从数据库中获取数据并创建表格表。
问题是我无法编辑使用创建的ID我尝试更改TD大小或使用JQuery调用特定ID但没有任何反应。
HTML
<html>
<head>
<title>תמונה במתנה</title>
<meta charset="utf-8">
<link href="admin-style.css" rel="stylesheet" type="text/css">
<script src="jquery.js"></script>
<script src="admin.js"></script>
</head>
<body>
<div id="container">
<div id="customer-list">
</div>
<button type="button" id="loadbtn">טען</button>
<div id="search">
<form id="searchForm" action="admin.php" method="post">
שם פרטי:<input type="text" name="fname" id="fname">שם:
שם משפחה:<input type="text" name="lname" id="lname">
טלפון:<input type="text" name="phone" id="phone">
אימייל:<input type="text" name="email" id="email">
<input id="searchForm" type="submit" name="searchbtn" value="חפש" />
</form>
</div>
<div id="serchList">
</div>
<div id="editCustomer">
</div>
</div>
</body>
</html>
JQuery的:
$(document).ready(function() {
$.ajax({
url: 'loadClient.php?submit=load',
success: function(data){
$('#customer-list').html(data);
}
}).error(function(){
alert('an alert occored');
}).success(function(){
// alert('success');
}).complete(function(){
// alert('complete');
});
$
$("#savebtn").click(function(){
alert ('hi)';
var lfname=document.getElementById('lfname').value;
var llname=document.getElementById('llname').value;;
var lemail=document.getElementById('lemail').value;;
var lcity=document.getElementById('lcity').value;;
var lphotos=document.getElementById('lphotos').value;;
var lid=document.getElementById('lid').value;;
$.ajax({
type:'POST',
url: 'loadClient.php ',
data: 'submit=save&lfname='+lfname+'&llname='+llname+'&lemail='+lemail+'&lcity='+lcity+'&lphotos='+lphotos+'&lid='+lid,
success: function(data){
$('#customer-list').html(data);
}
}).error(function(){
alert('an alert occored');
}).success(function(){
// alert('success');
}).complete(function(){
// alert('complete');
});
$.ajax({
url: 'loadClient.php?submit=load',
success: function(data){
$('#customer-list').html(data);
}
}).error(function(){
alert('an alert occored');
}).success(function(){
// alert('success');
}).complete(function(){
// alert('complete');
});
});
PHP
echo '<table border=1 cellspacing="0" cellpadding="0">';
echo '<tr>';
echo '<td width="80px">שם פרטי</td>';
echo '<td>שם משפחה</td>';
echo '<td>טלפון</td>';
echo '<td>אימייל</td>';
echo '<td>עיר</td>';
echo '<td width="150px">שעת רישום</td>';
echo '<td>מספרי תמונות</td>';
echo '<td>שמור</td>';
echo '</tr>';
$loadQuery="SELECT * FROM `claients` WHERE `eventreg_pictures` is null
OR `eventreg_pictures` like ''";
$result=mysql_query($loadQuery);
while($row= mysql_fetch_array($result)){
$client= $row;
$clients[]=$client;
echo '<tr>';
echo '<form id="loadForm" method="post" action="admin1.php">';
echo '<input type="hidden" name="lid" value="'.$client[0].'">';
echo '<td><input type="text" id="lfname" name="lfname" value="'.$client[1].'"></td>';
echo '<td><input type="text" id="llname" name="llname" value="'.$client[2].'"></td>';
echo '<td><input type="text" id="lphone" name="lphone" value="'.$client[3].'"></td>';
echo '<td><input type="text" id="lemail" name="lemail" value="'.$client[4].'"></td>';
echo '<td><input type="text" id="lcity" name="lcity" value="'.$client[5].'"></td>';
echo '<td>'.$client[7].'</td>';
echo '<td><input type="text" id="lphotos" name="lphotos"></td>';
echo '<td><input type="submit" id="savebtn" name="savebtn" value="שמור"></td>';
echo '</form>';
echo '</tr>';
}
echo '</table>';
}else echo'error';
答案 0 :(得分:0)
如果我是对的,问题是当您定义#savebtn
处理程序时,$("#savebtn").click
不存在。
请改为尝试:
$("#savebtn").ready(function(){
$("#savebtn").click(function() //...Continue Your code...
});
答案 1 :(得分:0)
一些事情:
“1。当jQuery更简单且更短时,你就混淆了jQuery和javascript。这一行:
`var lfname=document.getElementById('lfname').value;`
可以替换为这一行:
var lfname=$('#lfname').val();
“2。您的PHP循环遍历mysql搜索返回的结果,但您对所有返回的行使用相同的ID。这是禁忌。每个ID必须是唯一的。编辑PHP代码,根据行为每个id名称添加唯一编号。
尝试类似的事情:
$counter = 0;
$loadQuery="SELECT * FROM `claients` WHERE `eventreg_pictures` is null
OR `eventreg_pictures` like ''";
$result=mysql_query($loadQuery);
while($row= mysql_fetch_array($result)){
$client= $row;
$clients[]=$client;
echo '<tr>';
echo '<form id="loadForm-' .$counter. '" method="post" action="admin1.php">';
echo '<input type="hidden" name="lid" value="'.$client[0].'">';
echo '<td><input type="text" id="lfname-' .$counter. '" name="lfname" value="'.$client[1].'"></td>';
这样,在您的jQuery中,您可以查看 - 例如 - 哪个字段刚刚完成:
$('[id^=lfname]').blur(function() {
var xx = $(this).attr('id');
alert('You edited input: ' + xx);
var arrYY = xx.split('-'); //turn xx into an array, separated at each hyphen
var yy = arrYY[1]; //The number part of the array
alert('The number part of this element is: [' +yy+ ']');
});
“3。请注意,您还可以按类选择元素,这样您就可以在lfname输入字段中添加一个类,捕获具有该类的任何元素上的模糊(或焦点或等)事件,并确切地确定它是哪个输入:
echo '<td><input type="text" id="lfname-' .$counter. '" name="lfname" value="'.$client[1].'"></td>';
$('.lfname').blur(function() {
var xx = $(this).attr('id');
alert('You edited input: ' + xx);
});
“4。要明确的是,当您在页面上引用特定ID时没有任何反应的原因是因为您有多个具有相同ID的元素。 ID 必须唯一。请参阅上面的#2以使ID唯一,或者只使用class属性。
שלם