2012-01-23 10 views
1

私のページには、データベースに新しいレコードを挿入するフォームがあります。同じページに、現在の結果セットを含むDIVがあります。私がやろうとしています何フォームのサブコンテンツをリフレッシュするsubmit(ajax)

は、フォームが送信されるだけでDIV(全体ではなくページ)を更新しています。 DIVには最新のレコード(追加されたレコードを含む)が含まれます。

$('#add-variants-form').submit(function(){ 
    $.ajax({ 
     url: 'admin/addvariants', 
     type: 'POST', 
     dataType: 'html', 
     data: $(this).serialize(), 
    }); 

    return false; 
}); 

<div id="current-rows"> 
<?php while($variant=mysql_fetch_array($variants)) { ?> 
    <div class="row"> 
    // resultset   
    </div> 
<?php } ?> 
</div> 

私は(事前に)私のコントローラ内から$variantsを設定します。

$variants=Catalog::getProductVariants($product['id']); 

理想的には私がそのDIVにして注入されるHTMLの全体の負荷を返すことにしたくありません。

答えて

0

に役立ちます希望:

<div id="current-rows"> 
    <?php include("_current-rows.php"); ?> 
</div> 

そして、私のコントローラのaddvariants 'アクションに私はこれを行います:

$variants=Catalog::getProductVariants($_POST['product_id']); 
include('application/view/admin/catalog/_current-rows.php'); 

これは、jQueryの成功関数に返される応答です。

1

ajaxリクエストの成功ハンドラに新しいコンテンツを設定します。

$('#idOfYourDiv').load('/your/url', {params: params}); 

代わりに、あなたはまだ$アヤックスを使用することができますのようなもの、私は与えられたdiv要素にサーバからの応答を注入する方法を、.LOAD使用する方が簡単だと思う。この

$('#add-variants-form').submit(function(){ 
    $.ajax({ 
     url: 'admin/addvariants', 
     type: 'POST', 
     dataType: 'html', 
     data: $(this).serialize(), 
     success: function(newContent){ 
      $('#current-rows').html(newContent); 
     } 
    }); 

    return false; 
}); 
0

をお試しください、のように:PHPのサイト上

$('#add-variants-form').submit(function(){ 
    $.ajax({ 
     url: 'admin/addvariants', 
     type: 'POST', 
     dataType: 'html', 
     data: $(this).serialize(), 
     success: function(data) { 
     $('#yourDiv').html(data); // html will insert response, response is stored in "data" variable 
     } 
    }); 
    return false; 
}); 

ちょうど例えば

foreach($results as $result){ 
    echo $result."<br />"; 
} 
01、あなたが表示したいものをエコー

私はそれ自身の別々のビューファイルの中に「現在の-行」のdivの内容を入れている

関連する問題