Sayfa bir div yüklendiğinde çalıştırmak için jQuery fonksiyonlarını Başlarken

2 Cevap php

Kullanıcıların oturum ve onlar bizimle artırdı olağanüstü destek konularında denetlemek, bu sitede şirket kişileri başına yönetmek için bir sayfası bir site var. I kullanıcı bir sayfa yenileme kapılıyorum kalmaması alt sayfalarını yüklemek için jQuery kullanarak başladı sitesi güncelleme iken. Ben altsayfa bir div içine yüklendiğinde benim JavaScript yüklerken sorunlarla başladım.

The process is as follows:
User clicks the settings link, which loads settings.php (whole page refresh)
User clicks the 'Manage Contacts' option, which loads managecontacts.php into div#settingsph
From a select box, the user chooses the contact they wish to update, this loads that users data into div#contact_info (underneath the select box), using the option's value as a contact id to pass through to editcontact.php, which queries the db and renders it into a form for making changes to.

Bu sayfa yüklendikten sonra, ben yine sayfa refresh olmadan formu göndermek için jQuery doğrulama ve bir ajax fonksiyonunu kullanarak amaçlanan. Ancak, ben Javascript bu noktada yük almak için görünmüyor olabilir. Ben <head> etiketi senaryo olarak, editcontact.php bir dosya olarak ve editcontact.php de komut dosyası olarak, ana sayfaya <head> etiketi bir dosya olarak Javascript başvuran denedim ama bunların hiçbiri benim hata etiketlerini gizlemek için komut dosyası yüklemek veya güncelleştirme göndermek gibi görünüyor.

Kod: editcontact.php

<?php
session_start();

require  '../dbsettings.php';

header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header("content-type: application/x-javascript; charset=tis-620");
?>
<?php
$id = $_GET['id'];
if($id!=''){
    if($id!='NewContact'){ //if valid id has been supplied for db retrieval
        try
        {
            $db = new PDO('mssql:host=' . DBHOST . ';dbname=' . DBDATA, DBUSER, DBPASS);
        }
        catch(PDOException $error)
        {
            echo "<h2>Error!  " . $error->getmessage()."</h2>";
            die();
        }

        $query = "  SELECT ContactID, Surname, Forename, Phone, Email, JobTitle, MobileNumber, LeaveDate 
                    FROM Contact 
                    WHERE CompanyID ='" . $_SESSION['companyid'] . "' AND ContactID='" . $id . "'
                    ORDER BY Forename ASC";

        foreach($db->query($query) as $contact)
        {
?>
            <!--Have tried putting the script between <script> tags here-->
            <div id="contact_update">
                <form>
                    <h3>Personal Information</h3>
                    <label for="forename">Forename(s):</label>
                    <input name="forename" id="forename" value="<?php echo $contact['Forename']; ?>" class="text-input" />
                    <label class="error" for="forename" id="forename_error">Forename is required.</label>
                    <br />
                    <label for="surname">Surname:</label>
                    <input name="surname" id="surname" value="<?php echo $contact['Surname']; ?>" class="text-input" />
                    <label class="error" for="surname" id="surname_error">Surname is required.</label>
                    <br />
                    <label for="jobtitle">Job Title:</label>
                    <input name="jobtitle" id="jobtitle" value="<?php echo $contact['JobTitle']; ?>" class="text-input" />

                    <br />
                    <h3>Contact Information</h3>
                    <label for="phone">Telephone: </label>
                    <input name="phone" id="phone" value="<?php echo $contact['Phone']; ?>" class="text-input" />
                    <label class="error" for="phone" id="phone_error">Telephone is required.</label>
                    <br />
                    <label for="mob">Mobile: </label>
                    <input name="mob" id="mob" value="<?php echo $contact['MobileNumber']; ?>" class="text-input" />

                    <br />
                    <label for="email">Email:</label>
                    <input name="email" id="email" value="<?php echo $contact['Email']; ?>" class="text-input" />
                    <label class="error" for="email" id="email_error">Email is required.</label>
                    <br />
                    <h3>Misc Information</h3>
                    <label for="ldate">Leave Date:</label>
                    <input name="ldate" id="ldate" value="<?php echo $contact['LeaveDate']; ?>" class="text-input" />
                    <label for="ldate" class="hint">* Leave blank if still an active user</label>

                    <br />
                    <input type="submit" name="submit" value="Update" class="button" id="update_button" />
                </form>
            </div>
<?php
        } //end of foreach

    }else{ //else a new contact is being added
?>      
            <div id="contact_add">
                <form>
                    <h3>Personal Information</h3>
                    <label for="forename">Forename(s):</label><input name="forename" id="forename" /><br />
                    <label for="surname">Surname:</label><input name="surname" id="surname" /><br />
                    <label for="jobtitle">Job Title:</label><input name="jobtitle" id="jobtitle" /><br />
                    <h3>Contact Information</h3>
                    <label for="phone">Telephone: </label><input name="phone" id="phone" /><br />
                    <label for="mob">Mobile: </label><input name="mob" id="mob" /><br />
                    <label for="email">Email:</label><input name="email" id="email" /><br />
                    <input type="submit" value="Update" />
                </form>
            </div>
<?php
    }
}else{ //else page was not generated with id, possibly not using javascript - die, without allowing access
    echo 'ERROR 403 - FORBIDDEN';
    die();
}
?>

Kod: jquery.settings.js

// JavaScript Document

$(function managecontacts() {
  $('.error').hide();
  $('input.text-input').css({backgroundColor:"#ffffe0"});
  $('input.text-input').focus(function(){
    $(this).css({backgroundColor:"#FFFFFF"});
  });
  $('input.text-input').blur(function(){
    $(this).css({backgroundColor:"#ffffe0"});
  });

  $(".button").click(function() {
        // validate and process form
        // first hide any error messages
    $('.error').hide();

        var forename = $("input#forename").val();
        if (forename == "") {
      $("label#forename_error").show();
      $("input#forename").focus();
      return false;
    }

        var surname = $("input#surname").val();
        if (surname == "") {
      $("label#surname_error").show();
      $("input#surname").focus();
      return false;
    }
        var email = $("input#email").val();
        if (email == "") {
      $("label#email_error").show();
      $("input#email").focus();
      return false;
    }
        var phone = $("input#phone").val();
        if (phone == "") {
      $("label#phone_error").show();
      $("input#phone").focus();
      return false;
    }

        var jobtitle = $("input#jobtitle").val();
        var mobile = $("input#mob").val();
        var ldate = $("input#ldate").val();

        var dataString = 'forename=' + forename + '&surname=' + surname + '&jobtitle=' + jobtitle '&email=' + email + '&phone=' + phone + '&mobile=' + mobile + '&ldate=' + ldate;
        //alert (dataString);return false;

        $.ajax({
      type: "POST",
      url: "Includes/stg/contactprocess.php",
      data: dataString,
      success: function() {
        $('#contact_update').html("<div id='message'></div>");
        $('#message').html("<h2>Contact Successfully Updated</h2>")
        .append("<p>Thank you.</p>")
        .hide()
        .fadeIn(1500, function() {
          $('#message').append("<img id='checkmark' src='images/tick.png' />");
        });
      }
     });
    return false;
    });
});

Kod: divlere içine yükleme sayfaları için <head> etiketi

<script type="text/javascript">
    function open_page(name) {
        $("#settingsph").load("Includes/stg/"+name+".php");
    }
    function open_contact(id) {
        $("#contact_info").load("includes/stg/editcontact.php?id="+id);
    }
</script>

Bu i silbaştan gitmek gerek olup mümkün ya da değil, ya da olup olmadığı konusunda verilebilir Herhangi bir yardım büyük takdir edilecektir.

2 Cevap

Laimoncijus sizin komut dosyası çalıştırmak için geri arama kullanma hakkında cevabı vardır. Ama aynı zamanda belge hazır sonra okarşımatik olarak eklenen elemanları olay fonksiyonları ekler jQuery'nin live olay işlevini kullanarak gerçekleştirebilirsiniz. Ve bunu uygulamak kolay.

Değişim

$(".butkarşın").click(function() {

karşı

$(".butkarşın").live('click', function() {

Bu da focus için çalışmak ve blur Olayların gerekir.

Sen içerik DIV yüklendikten sonra denir jQuery yükünün bir geri çağırma işlevi () yöntemi, belirtebilirsiniz. Eğer yeni yüklenen form ve / veya içerik için JS kodu takmak için kullanabilirsiniz.