views:

60

answers:

1

Internet Explorer seems to be ignoring this .live function call during updating records but it works fine in FF.

if

$("form#updateform").live("submit", function(){

line is changed to

$("form#updateform").live("click", function(){

update function is working perfectly in IE but in Firefox if i click on any object it takes data before i do something .... please suggest me, Help someone please...

index.php

<html><head><title>Testing AJAX</title>
<script type="text/javascript" src="jquery.js"></script>
</head><body>
<div class="container">  
    <form id="submit" method="post">  
        <fieldset><legend>Enter Information</legend>  
            <label for="actnam" >Activity       : </label><input id="actnam" name="actnam" class="text" size="20" type="text">
            <label for="actres" >Responsibility : </label><input id="actres" name="actres" class="text" size="20" type="text">
            <label for="actdat" >DAte           : </label><input id="actdat" name="actdat" class="text" size="10" type="text">
            <label for="actsta" >status         : </label><input id="actsta" name="actsta" class="text" size="20" type="text">
            <label for="actcom" >comments       : </label><input id="actcom" name="actcom" class="text" size="20" type="text">
        <input type="submit" value="Add">
        </fieldset>
    </form>  
    <div class="name_list"></div>
    <div class="update_form"></div>  
</div>

<script type="text/javascript">

$(document).ready(function(){

        function loadList(){
        // load list start
                $.ajax({
                    url: "load-list.php",
                    cache: false,
                    success : function(html){
                            $(".name_list").html(html);
                                }
                       });
            }
loadList();
        $("form#submit").submit(function() {
        // we want to store the values from the form input box, then send via ajax below
            var x=window.confirm("Are you sure you want to delete this item?")
            var actnam = $('#actnam').attr('value');
            var actres = $('#actres').attr('value');
            var actdat = $('#actdat').attr('value');
            var actsta = $('#actsta').attr('value');
            var actcom = $('#actcom').attr('value');
            if (x==true){
                         $.ajax({
                    type: "POST",
                    url: "save.php",
                    data: "actnam="+ actnam +"& actres="+ actres +"& actdat="+ actdat + "& actsta="+ actsta +"& actcom="+ actcom,
                    success: function(){
                            loadList();
                                   }
                                });
                      }
        return false; });
        $(".delete_button").live("click", function(){
            //this deletes the row clicked on with an alert and then reloads the list
            var idvaluein = $(this).attr("id");
            var x=window.confirm("Are you sure you want to delete this item?");
                if (x==true){
                    $.ajax({
                    type: "POST",
                    url: "delete.php",
                    data: "id="+ idvaluein,
                    success: function(){
                            loadList();
                               }
                            });
                              }
            return false;     });
        $(".update_button").live("click", function(){
            //this loads the update form
            var idvaluein = $(this).attr("id");
            var x=window.confirm("Are you sure you want to update this item?");
            if (x==true){
            alert(idvaluein);
            $.ajax({

                url: "update-form.php",
                data: "id="+ idvaluein,
                cache: false,
                success: function(html){
                        $(".update_form").html(html);
                            }
                       });
                }
            return false;    });    
               $("form#updateform").live("submit", function(){
                    var actnam = $('#actnam_update').attr('value'); 
                        var actres = $('#actres_update').attr('value'); 
                        var actdat = $('#actdat_update').attr('value'); 
                    var actsta = $('#actsta_update').attr('value'); 
                    var actcom = $('#actcom_update').attr('value'); 
                    var idvaluein = $('#id_update').attr('value');
            $.ajax({
                type: "POST",
                url: "update.php",
                data: "actnam="+ actnam +"& actres="+ actres +"& actdat="+ actdat +"& actsta="+ actsta +"& actcom="+ actcom+"& id="+ idvaluein,
                success: function(){
                    $(".update_form").empty();
                    loadList();
                }
            });
             return false;

        });
});
</script> </body></html>

<?php 
$hostname="localhost";
$username="root";
$password="";
$dbname="stact";

$conn = mysql_connect($hostname,$username,$password) or die ('Not Connecting to the database');
@mysql_select_db($dbname) or die ('Not accessing table');

$idvalue=substr($_GET['id'],7);

$sql="SELECT * FROM act_tab WHERE slno='$idvalue'";

$query=mysql_query($sql);

$result = mysql_fetch_assoc($query);

?>
<form id="updateform" method="post">  
    <fieldset>
        <legend>Update Activity</legend>  
        <label for="actnam_update">Activity       :</label><input id="actnam_update" name="actnam_update" class="text" size="20" type="text" value="<?php echo $result['act_nam']; ?>">
        <label for="actres_update">Responsibility :</label><input id="actres_update" name="actres_update" class="text" size="20" type="text" value="<?php echo $result['act_res']; ?>"> 
        <label for="actdat_update">Date           :</label><input id="actdat_update" name="actdat_update" class="text" size="10" type="text" value="<?php echo $result['act_dat']; ?>">
    <label for="actsta_update">status         :</label><input id="actsta_update" name="actsta_update" class="text" size="20" type="text" value="<?php echo $result['act_sta']; ?>"> 
    <label for="actcom_update">Comments       :</label><input id="actcom_update" name="actcom_update" class="text" size="20" type="text" value="<?php echo $result['cct_com']; ?>">
        <input id="id_update"  size="20" type="hidden" value="<?php echo $result['slno']; ?>">
    <input type="submit" value="Update">         
    </fieldset>
</form>

Update.php

<?php

    $hostname="localhost";
    $username="root";
    $password="";
    $dbname="stact";
    $conn = mysql_connect($hostname,$username,$password) or die ('Not Connecting to the database');
    @mysql_select_db($dbname) or die ('Not accessing table');
    // CLIENT INFORMATION
    $actnam = htmlspecialchars(trim($_POST['actnam']));
    $actres = htmlspecialchars(trim($_POST['actres']));
    $actdat = htmlspecialchars(trim($_POST['actdat']));
    $actsta = htmlspecialchars(trim($_POST['actsta']));
    $actcom = htmlspecialchars(trim($_POST['actcom']));
    $idvaluein = htmlspecialchars(trim($_POST['id']));

    $rem  = "UPDATE act_tab SET act_nam='$actnam',act_res='$actres',act_dat='$actdat',act_sta='$actsta',cct_com='$actcom' WHERE slno='$idvaluein'";

 mysql_query($rem) or die(mysql_error());
mysql_close($conn);
?>

load-list.php

<?php 
$hostname="localhost";
$username="root";
$password="";
$dbname="stact";

$conn = mysql_connect($hostname,$username,$password) or die ('Not Connecting to the database');
@mysql_select_db($dbname) or die ('Not accessing table');

$sql='SELECT * FROM act_tab ORDER BY act_dat';
$query=mysql_query($sql); ?>

<table width="100%" border="1" cellspacing="1" bordercolor="#00CC33" id="thetable">

<?php while($result = mysql_fetch_assoc($query)){?>
<div class="element" id="element-<?php echo $result['slno']; ?>">
<tr>
      <td><?php echo $result['act_nam']; ?></td>
    <td> <?php echo $result['act_res']; ?></td>
        <td> <?php echo $result['act_dat']; ?></td>
    <td> <?php echo $result['act_sta']; ?></td>
        <td> <?php echo $result['cct_com']; ?></td>
    <td> <a href="javascript:void(0);" id="<?php echo $result['slno']; ?>" class="delete_button">Delete</a></td>
    <td> <a href="javascript:void(0);" id="update-<?php echo $result['slno']; ?>" class="update_button">Update</a></td>
  </tr>
<?php } ?>
</div>
</table>
A: 

known bug

Have you tried to call live('submit') BEFORE all the live('click') in your function ?

MatTheCat
Yes Mat i had tired first using submit.. but it works only with Fire Fox not in IE. then i have choose click and change events that worked but this did not work perfectly and also it is not the best alternative to submit as you know.
Jimson