我无法访问从php生成的HTML ID

时间:2013-08-20 21:52:15

标签: php jquery ajax

在我从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';

2 个答案:

答案 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属性。

שלם