0

私は AJAX と CodeIgniter に関する多数のチュートリアルを行ってきましたが、これを機能させることができないようです。商品をカートに追加するフォームを送信しようとしています。

コントローラー部分は次のとおりです。

public function addtocart($page = 'orcamento')
{
    ...
    // ADD TO CART
    $idprod=$this->input->post("id",TRUE);
    $quant=$this->input->post("quant",TRUE);
    $prodname=$this->input->post("prodname",TRUE);

    $addtocart = array(
        'id'      => $idprod,
        'qty'     => $quant,
        'price'   => 1,
        'name'    => $prodname
        );

    $this->cart->insert($addtocart);

景色:

<?php       
    $attributes = array('id' => 'flor'.$florestais_total_count);
    echo form_open('orcamento/addtocart', $attributes); 
?>
<span class="prod_list_quant_title">
    <?php echo lang('orc_quantidade'); ?>
</span>
<input type="text" name="quant" id="quant" class="prod_list_quant_input" value="" />
<input name="id" type="hidden" value="<?php echo $flor->idprodutos; ?>" style="border:0;" />
<input name="prodname" type="hidden" value="<?php $this->General_model->getLangString($flor->name,$lang); ?>" style="border:0;" />
<div class="prod_list_quant_add" onclick="addtocart('flor<?php echo $florestais_total_count; ?>')">
    <span class="text_quant_add"><?php echo lang('orc_btn_add'); ?></span>
</div>
</form>
</div>

また、関数addtocart:

function addtocart(formid)
{
    var pid=$c("form#"+formid).children("input[name='id']").val();
    var pquant=$c("form#"+formid).children("input[name='quant']").val();
    var pname=$c("form#"+formid).children("input[name='prodname']").val();

    $c.ajax({
            type: "POST",
            url: "<?php echo base_url(); ?>orcamento/addtocart",
            dataType: "json",
            data: "id="+pid+"&qty="+pquant&"name="+pname,
            cache:false,
            success: function() {
            }  
        });
        return false;
    }

ここで何が間違っていますか?

4

3 に答える 3

0

代わりにこれを試してください$c.ajax

$.post("<?php echo base_url(); ?>orcamento/addtocart",$("#"+formid).serialize());

次に何が起こるか見てみましょう。

于 2013-02-23T19:10:52.990 に答える
0

わかった!これが答えです:

function addtocart(formid)
{
    $c.ajax({
        type: "POST",
        url: "<?php echo base_url(); ?>orcamento/addtocart",
        data : $c("form#"+formid).serialize(),
        success : function(data) {
                // Show OK message
                alert('ok');
        },
        error: function(error){
                // Show error message
                alert('error');
        }
        });
    return false;
}

ここで、全体を更新せずに、ビューの製品リストを更新する必要があります...

于 2013-02-23T19:34:23.270 に答える