0

从数据库得到答案后,我使用 AJAX 并使用 PHP 生成 html 代码。第一部分工作更大,我正在从数据库中加载数据并创建表格。

问题是我无法编辑使用创建的 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>

查询:

$(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';
4

2 回答 2

0

如果我是对的,问题是#savebtn当你定义处理程序时你的不存在$("#savebtn").click

试试这个:

$("#savebtn").ready(function(){
    $("#savebtn").click(function() //...Continue Your code...
});
于 2013-08-20T22:07:33.563 回答
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 属性。

שלם

于 2013-08-20T22:16:43.627 回答