簡體   English   中英

使用AJAX / Jquery替換div

[英]Using AJAX/Jquery to Replace div

我試圖用data消息在AJAX調用后設置一個空div的內容。 我還將功能連接到CHtml::submitButton ,單擊該功能時應調用該功​​能,但沒有任何反應。 有什么建議么?

<div id="myResult">        
</div>

JavaScript

function successMessage(){
    $.ajax({
        type: "GET",
        data: "<div> Replace div with this contentf</div>",
        success: function(data){
            $('myResult').html(data);
        }
    })
}

PHP:

echo CHtml::beginForm(array('myForm'), 'get', array('form'));
echo '<div class="row form">';
echo '<div class="row buttons">';
echo CHtml::submitButton('Download Content', array('htmlOptions' => 'successMessage()'));
echo '</div>';
echo '</div>';

嘗試這個:

 $.ajax({
             url: "test.html",
            type: "GET",
            data: "<div> Replace div with this contentf</div>",
            success: function(data){
                $('#myResult').html(data);
            }
        })

選擇器jQuery在響應Ajax中不正確。 並在ajax中定義Url。

您的問題取決於以下行:

$('myResult').html(data);

在這里,您嘗試對不在HTML中使用的元素進行jquery選擇(這只能通過pollyfils實現)。 因此,您必須通過其ID選擇元素:

$('#myResult').html(data);

我看到的另一件事是,您在執行請求的網址是什么?

<script>
    function successMessage(){
        $.ajax({
            type: "GET",
            url: "/please/add/an/url/",
            data: "<div> Replace div with this contentf</div>",
            success: function(data){
                $('myResult').html(data);
            }
        })
    }
</script>

首先,當您使用像這樣的onclick函數時:

<input type="submit" onclick="successMessage()">

您應該改用以下代碼:

<input type="submit" onclick="successMessage();result false;">

但是當您已經在使用jQuery時,更好的方法是:

 $( document ).ready(function() {
        successMessage(){
           // your ajax goes here
        }

        $('#myResult').click(function(e){
          e.preventDefault();
          successMessage();
        });
     });

然后,您需要修復您的successMessage函數。 您會看到,正在設置的數據沒有作為輸出輸出的數據。 如果您需要ajax,則可能要從其他網址上的某些php腳本獲取結果。 然后,您應該這樣做:

function successMessage(){
        $.ajax({
            type: "GET",
            url : 'index2.php',
            dataType: "json",
            data: { mydata: '<div> Replace div with this content</div>'},
            success: function(data){             
                $('#myResult').html(data);
            }
        })
    }

然后,您需要一個名為index2.php的php文件,該文件如下所示:

<?php
    echo json_encode($_GET['variable']);
?>

而且我不知道這是否您的台詞:

echo CHtml::submitButton('Download Content', array('htmlOptions' => 'successMessage()'));

還將</form>標記放在</form>后面以將其關閉。

這應該為您工作。 我試過了,效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM