【问题标题】:Why does this insert into database without http:// but not insert with the http://为什么在没有 http:// 的情况下插入数据库但不使用 http:// 插入
【发布时间】:2011-10-22 17:12:55
【问题描述】:

我需要使用 jquery/json 从前端将 site_title、site_address(url)site_description 和 site_category 插入到我的数据库中。如果我不输入“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>

控制器

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

编辑 - 解决方案

首先,让我非常感谢 Marshall Brekka,他提出了 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));

}

我还要说,我认为那些对我的问题投了反对票的人,无论他们在堆栈溢出社区中的地位有多高,都需要走出更多!我是一个菜鸟,我还在学习,我负担不起去大学学习这个,我有时需要帮助..你从来没有在那个阶段吗?噗!

【问题讨论】:

  • 你为什么编辑Jakub这个问题??
  • 另外,你为什么对这个问题投了反对票??
  • Jakub 改进了您的问题。见this section of the FAQ
  • 您可以自己查看他的 Jakub 的编辑,只需点击它说它被编辑的地方。它们看起来主要是清理代码缩进、修复标签和删除与问题无关的内容。
  • “礼貌”的意思是“不粗鲁”。这并不意味着你必须用喋喋不休来填补这个问题。鼓励直率。

标签: jquery ajax json codeigniter


【解决方案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, 
},

【讨论】:

  • 谢谢但没用.. 真的很奇怪,如果我不填写站点地址输入栏的其他输入并用examplesite.com 填充它就可以了.. 然后我填写其他输入,它不再起作用..感谢您的时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-27
  • 2019-09-04
相关资源
最近更新 更多