Sjay
Sjay

Reputation: 801

Issue in Edit Input Box Jquery/PHP

I'm facing an issue in edit button click for moving label data to input text data!

When i click on edit button label data is replaced with input text box im using jquery hide/show! its working fine for first row im able to update in mysql db!!. when i click on edit button for 2nd and 3rd row input texbox is popping up in 1st row and when i click on cancel button for 2nd and 3rd row its replacing it with mysql table ID.

Any Help Is appricated Thanks!

Bootstrap/PHP Code

I'm fetching Data from mysql DB

if(isset($_POST['display']))
{
    $sql = "select * from demo";
    $result = mysql_query($sql);
    while($row = mysql_fetch_object($result))
    {       
    ?> 
    <div class='container'>
        <div class='row'>
            <div class='col-md-4'>
                <label  style="display:block-inline;" class="feed_label" id="feed_label" idl='<?php echo $row->id;?>'>
                    <?php echo $row->url; ?>
                </label>
                <input name="url1" class="form-control url1" value="<?php echo $row->id;?>" id="url1" type="text"  style="display:none;">
            </div>
            <div class='col-md-2'>
                    <a ide='<?php echo $row->id;?>'  id="edit" class='edit' href="#" style="display:block-inline;">EDIT</a>
                    <a idc='<?php echo $row->id;?>' id="cancel" class='cancel btn btn-warning btn-sm' href='#' style='display:none;'>CANCEL</a>
            </div>
        </div>
    </div>
    <?php 
    }
    exit();
}

JQuery Code For Replacing Label to Input text and vice Versa

$('body').delegate('#edit','click',function(){
    $('#feed_label').hide();
    $('#url1').show();
});
$('#cancel').click(function(){
    $('#feed_label').show();
    $('#url1').hide();
});

Upvotes: 1

Views: 98

Answers (1)

user3804188
user3804188

Reputation: 140

you have multiple elements with the same is(id="edit", id="cancle" and id="feed_label"). Be aware of that id has to be unique through your html-document. try this instead:

Js:

$('.edit').on('click', function(e){
var btn = jQuery(e.delegateTarget);
    var id = btn.attr('rid');
    $('#feed_label'+id).hide();
    $('#url'+id).show();
});

$('.cancel').on('click', function(e){
    var btn = jQuery(e.delegateTarget);
    var id = btn.attr('rid');
    $('#feed_label'+id).show();
    $('#url'+id).hide();
});

PHP:

<?php
if(isset($_POST['display'])) {
    $sql = "select * from demo";
    $result = mysql_query($sql);
    while($row = mysql_fetch_object($result)) {
        echo '<div class="container">'.
            '<div class="row">'.
                '<div class="col-md-4">'.
                    '<label style="display:block-inline;" class="feed_label" id="feed_label'.$row->id.'">'.
                        $row->url.
                    '</label>'.
                    '<input name="url1" class="form-control url1" value="'.$row->id.'" id="url'.$row->id.'" type="text" style="display:none;">'.
                '</div>'.
                '<div class="col-md-2">'.
                    '<a rid="'.$row->id.'" class="edit" href="#" style="display:block-inline;">EDIT</a>'.
                    '<a rid="'.$row->id.'" class="cancel btn btn-warning btn-sm" href="#" style="display:none;">CANCEL</a>'.
                '</div>'.
            '</div>'.
        '</div>';
    }
    exit();
}
?>

Upvotes: 0

Related Questions