2011-10-22 8 views
0

jquery/jsonを使用してフロントエンドからsite_title、site_address(url)site_description & site_categoryをデータベースに挿入する必要があります..私は "http://"をsite_address入力フィールドに入れないとサイトを挿入し、フロントエンドを正常に更新しますが、すぐにデータベースに格納されません。これはなぜhttp://のないデータベースに挿入するのですか?http://

私は持っていますHOMEビューでは、このコード

FORM:

<form action="" method="post" class="addsite_form"> 
    <input id="account_id" type="hidden" value="<?php echo $this->session->userdata('account_id');?>"/> 
    <label for="site_title"><strong>Site Name:</strong></label> 
    <input id="site_title" type="text" maxLength="25" tabindex="1" name="site_title" /> 
    <label for="site_address"><strong>Site Address:</strong></label> 
    <input id="site_address" type="text" tabindex="2" name="site_address" /> 
    <label for="site_description"><strong>Site Description:</strong></label> 
    <input id="site_description" type="text" tabindex="3" name="site_description" /> 
    <label for="site_category"><strong>Site Category:</strong></label> 
    <input id="site_category" type="text" tabindex="4" name="site_category" /> 

    <input id="addsite_form_submit" type="submit" value="Add Site" name="submit" tabindex="5" /> 

</form> 

CONTROLLER

public function addUserSites() { 

    $account_id = $this->input->post('account_id'); 
    $site_title = $this->input->post('site_title'); 
    $site_description = $this->input->post('site_description'); 
    $site_address = $this->input->post('site_address'); 
    $site_category = $this->input->post('site_category'); 

    $array = array(
    'account_id' => $account_id, 
    'site_title' => $site_title, 
    'site_description' => $site_description, 
    'site_address' => $site_address, 
    'site_category' => $site_category, 

); 

    echo json_encode($this->usersites_model->insertsites($array)); 

} 

MODEL:

public function insertsites($data) { 

    $this->db->insert('usersites', $data); 

    return TRUE; 

} 

jQueryの

$('.addsite_form').submit(function() { 
    var account_id = $("#account_id").val(); 
    var site_title = $("#site_title").val(); 
    var site_address = $("#site_address").val(); 
    var site_description = $("#site_description").val(); 
    var site_category = $("#site_category").val(); 

    $.post("/usersites/addusersites", { 

    "account_id" : account_id, 
    "site_title" : site_title, 
    "site_address" : site_address, 
    "site_description" : site_description, 
    "site_category" : site_category, 
    }, 

    function(data){ 
    }, "json"); 
}); 

EDITからSOLUTION

まず、私は大きなはencodeURIComponentでの提案マーシャルBrekkaに感謝しましょう..私は今それをよく読んでとPHPのバージョンを発見した。..

私はにでurlencodeを追加しました私のコントローラとそれが今ここに...働く新しいコントローラです

public function addUserSites() { 

    $account_id = $this->input->post('account_id'); 
    $site_title = $this->input->post('site_title'); 
    $site_description = $this->input->post('site_description'); 
    $site_address = $this->input->post(urlencode('site_address'));//added urlencode 
    $site_category = $this->input->post('site_category'); 

    $array = array(
     'account_id' => $account_id, 
     'site_title' => $site_title, 
     'site_description' => $site_description, 
     'site_address' => $site_address, 
     'site_category' => $site_category, 

    ); 

    echo json_encode($this->usersites_model->insertsites($array)); 

} 

はまた、私はダウンに関係なく、スタックオーバーフローのコミュニティに立ってどのように高く、私の質問に投票しなかった人がする必要があると考えていることを言うかもしれませんもっと出よう!私はノブです、私はまだ学んでいます、私はこれを学ぶためにユニに行く余裕がない、時には助けが必要です..あなたは決してその段階にいませんでしたか?パフフト!

+0

なぜあなたは質問を編集しましたか? –

+0

また、あなたはなぜ質問に投票しましたか? –

+3

Jakubがあなたの質問を改善しました。 [FAQのこのセクション](http://stackoverflow.com/faq#editing)を参照してください。 –

答えて

1

あなたの値をURLでエンコードしていない可能性があります。これを試してください。

$.post("/usersites/addusersites", { 

    "account_id" : account_id, 
    "site_title" : site_title, 
    "site_address" : encodeURIComponent(site_address), 
    "site_description" : site_description, 
    "site_category" : site_category, 
}, 
+0

ありがとうございますが、うまくいきませんでした。他の入力バーにサイトアドレスの入力を記入せずにhttp://examplesite.comで入力すれば、本当に変です私が他のインプットを記入するとすぐに、それは再び働かない。あなたの時間をありがとう。 –

関連する問題