0

これが何度か尋ねられたことは知っていますが、以前の解決策は役に立ちませんでした。何かが欠けているかどうかわかりません

index.php を含む単純な php/hmtl ページがあり、単純な GET チェックを使用してさまざまなコンテンツの php ページを含めます。

if (isset($_GET['section'], $section[$_GET['section']])) {
    include $section[$_GET['section']];
} else {
    include $section['home'];
}

これらのセクションの 1 つに、魔法の ajax/jquery アクションを実行したいフォームが含まれています。

index.php の下部にロードされている私の JavaScript ファイルには、次の jquery ajax があります。

//ajax load domain search script
$(document).ready(function(){
    $('#lookup_domain').live("click", function(e) {
        e.preventDefault();
        searchVal = $('#domain').val();
        topLevel = $('.custom_select').val();
        domain = searchVal + '.' + topLevel;
        $.ajax({
            type: 'GET',
            url: 'script_domain.php',
            data: 'domain=' + domain,
            dataType: 'html',
            beforeSend: function() {
                $('#result').html('<img style="margin-left: 80px;margin-top: 30px;" src="_assets/img/loader.gif" alt="loading..." />');
                if (!searchVal[0]) {
                    $('#result').html('<p>Syötä domain nimi.</p>');     
                    return false;
                }   
            },
            success: function(response) {
                $('#result').html(response);

            },
            error: function(response) {
                $('#result').html('<p>Haussa virheitä.</p>');
            }
        });
    });
});

十分使えると思いました

$(document).ready(function(){

そしてライブメソッド(私はjquery 1.7.1を持っているので、ライブはうまくいくはずですか?)

$('#lookup_domain').live("click", function() {

残念ながら、これは機能していません。フォームはフォーム自体に送信し、ページを再度ロードします。

フォームは次のとおりです。

<?php
if(!defined('indexcalled')){die('Direct access not premitted');}
?>
            <div id="domain_search">
                <h5>hae verkkotunnusta</h5>
                <form action="#" method="get" class="domain_form">
                    <input type="text" name="domain" class="domain_input" />
                    <div class="select_wrap">
                        <select class="custom_select">
                            <option value="fi">.FI</option>
                            <option value="com">.COM</option>
                            <option value="net">.NET</option>
                            <option value="me">.ME</option>
                            <option value="info">.INFO</option>
                        </select>
                    </div><!--/select wrap-->
                    <input type="submit" value="Syötä" class="domain_submit_btn" id="lookup_domain"/>
                </form>
                <div class="clear"></div>
            </div><!--/domain search-->

ここで何が欠けていますか?この種の動的ページ設定で jquery を使用する方法についての適切なドキュメントはありますか?

編集

私の最初の質問は、これらの種類の要素をjqueryで適切に処理する方法でした。これらは後で含まれるためです。

on() は 1.7 でも非推奨になっているため、ライブではなく on() を使用する必要があることがわかりました。そこで、次のようにコードを編集しました。

$(document.body).on("click", '#lookup_domain', function(e){
    e.preventDefault();
    $(document.body).on("click", '#domain', function(event){
        alert($(this).text());
    });

しかし、アラートは機能しません。何もしません。ここで何が欠けていますか?

4

3 に答える 3