0

ビューの条件でdivを設定したいのですが、その方法がわかりません。コントローラーからの要求が彼に当てはまる場合、成功divが表示され、そうでない場合は失敗divが表示されます。当時、私はアラートボックスにtrueとfalseを出力しているだけです。これが私の見解です:

             <div class = "success">operation done successfully </div>
             <div class = "failiour">operation done successfully </div>
   //these are the two divs on which i want to apply a condition

    <form>



             </form>        

       <script type="text/javascript">
        $('#btn').click(function() { //  $("#form").serialize()

var item_name = $('#item_name').val();
var cat_id = $('#selsear').val();

if (!item_name || item_name == 'Name') {
    alert('Please enter Category Name');
    return false;
}

var form_data = {
        item_name: $('#item_name').val(),
        cat_id:    $('#selsear').val(),


};

$.ajax({
    url: "<?php echo site_url('itemsController/additems'); ?>",
    type: 'POST',
    data: form_data,
    dataType: 'json',
    success: function(msg) {
        if(msg.res  == 1)
        {
            alert(true);
        }
        else{
         alert(false);             
          }


    }
});

return false;
      });


    </script>

私のコントローラー

     function additems(){

    //getting parameters from view 
    $data = array(
            'item_name' => $this->input->post('item_name'),
            'cat_id' => $this->input->post('cat_id')

    );


    //$is_ajax = $this->input->post('ajax'); //or use this line
    //$this->input->is_ajax_request();



$result = array();
$this->load->model('itemsModel'); 
$query = $this->itemsModel->addItemstoDB($data);

if ($query){  //&& any other condition

    $result['res'] = 1;//process successful - replace 1 with any message
}
else 
 {
    $result['res'] = 0;//process failed - replace 0 with any message
 }
 echo  json_encode($result);//at the end of the function.
}



   }
4

3 に答える 3

0

成功と失敗の両方のdivでcssを介してdisplaynoneを設定し、次のようにします。

$ .ajax({
    url: ""、
    タイプ:'POST'、
    データ:form_data、
    dataType:'json'、
    成功:function(msg){
        if(msg.res == 1)
        {{
            $( "。success")。fadeIn(500).delay(2000).fadeOut(500);
        }
        そうしないと
        {{
            $( "。failiour")。fadeIn(500).delay(2000).fadeOut(500);
        }


    }
});
于 2013-01-12T04:55:07.870 に答える
0

最初にdivを非表示にします

<div class = "success" style="display:none;">operation done successfully </div>
<div class = "failiour" style="display:none;">operation done successfully </div>

その後、あなたが複数回reuestsを取得している場合

$.ajax({
    url: "",
    type: 'POST',
    data: form_data,
    dataType: 'json',
    success: function(msg) {
        if(msg.res  == 1)
        {
            $(".success").show();
            $(".failiour").hide();
        }
        else
        {
            $(".failiour").show();
            $(".success").hide();
        }


    }
});
于 2013-01-12T04:59:01.210 に答える
0

スクリプトでは、

//supposing you are getting the result in response varible
if(response == true) // simply write:  if(response)
{
document.getElementById('success').style.display='block';
document.getElementById('failure').style.display='none';
}
else
{
document.getElementById('success').style.display='none';
document.getElementById('failure').style.display='block';
}

// IDをdivに追加し、要件に応じてスタイルブロック/なしを追加します

<div id="success" style="display:block;"></div>

<div id="failure" style="display:none;"></div>
于 2013-01-12T04:59:42.323 に答える