Почему это вставить в базу данных без http: //, но не вставить с http: // - PullRequest
0 голосов
/ 22 октября 2011

Мне нужно вставить site_title, site_address (url) site_description & site_category в мою базу данных из внешнего интерфейса с помощью jquery / json. Он вставляет сайт и обновляет штраф в интерфейсе, если я не поставлю "http://" в поле ввода site_address, но как только я это сделаю, он не будет добавлен в базу данных ..

У меня есть этот код

ФОРМА В ДОМАШНЕМ ВИДЕ:

<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));

}

МОДЕЛЬ:

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");
});

РЕДАКТИРОВАТЬ - РЕШЕНИЕ

Во-первых, позвольте мне сказать большое спасибо Маршаллу Брекке , который предложил encodeURIComponent .. Я сейчас прочитал об этом и нашел версию 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));

}

Позвольте мне также сказать, что я думаю, что люди, которые отказались от голосования, голосовали за мои вопросы, независимо от того, как высоко они стоят в сообществе переполнения стека, нужно больше получать! Я новичок, я все еще учусь, я не могу позволить себе пойти в университет, чтобы узнать это, мне иногда нужна помощь ... Вы никогда не были на этом этапе? Pffft!

1 Ответ

1 голос
/ 22 октября 2011

Это может быть потому, что вы не закодировали свои значения в 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, 
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...