问候StackOverflow!我试图使用AJAX将数据传递给控制器,但由于某些原因它没有。
控制器:
public function updateSocial($key){
if($key != null){
list($name, $address) = explode("&&", $key);
$this->db->query("UPDATE social SET address = '" . $address . "' WHERE name = '" . $name . "'");
echo "Affected rows: " . $this->db->affected_rows();
}
}
的Ajax:
function updateSocial(name){
var address = $("#" + name).val();
var key = name +"&&"+ address;
//alert(key);
$.ajax({
type: "GET",
url: "<?php echo base_url(); ?>controller/updatesocial",
data: key,
dataType: "text",
cache:false,
success:
function(data){
alert(data); //as a debugging message.
}
});
}
和HTML:
<div class="row">
<div class="col-lg-10 col-md-10 col-sm-12 col-xs-12">
<label for="{name}">{name}</label>
<input id="{name}" class="form-control" name="{name}"value="{address}"/>
</div>
<div class="col-lg-2 col-md-2 col-sm-12 col-xs-12">
<div class="clearfix"> </div>
<input type="submit" class="btn btn-material-green pull-right" onclick="updateSocial('{name}')"/>
</div>
</div>
我在StackOverflow上搜索了解决方案,尝试了所有方法但无法解决。
如果我在url中手动输入值如下:
www.domain.com/controller/updatesocial/something&&another_something
它有效,所以问题不是PHP端。
我正在尝试做什么:我有多个需要单独修改的输入字段,我想使用AJAX这样做。
如果发布了同样的问题,我很抱歉,但我找不到了。我已经尝试了所有我能找到的东西,但它不起作用。
答案 0 :(得分:2)
试试这个..
您可以通过ajax中的数据选项和定义的类型将数据发送到服务器。默认类型是GET方法
使用&#34;数据:{name:name,address:address},&#34;
$.ajax({
type: "GET",
url: "<?php echo base_url(); ?>controller/updatesocial",
data: {name:name,address:address},
dataType: "text",
cache:false,
success:
function(data){
alert(data); //as a debugging message.
}
});
答案 1 :(得分:2)
function updateSocial(name){
var address = $("#" + name).val();
var key = name +"&&"+ address;
//alert(key);
$.ajax({
type: "GET",
url: "<?php echo base_url(); ?>controller/updatesocial/"+key,
dataType: "text",
cache:false,
success:
function(data){
alert(data); //as a debugging message.
}
});
}
您正在使用GET方法发送数据,因此您必须通过附加网址发送数据,而您的控制器将
public function updateSocial(){
$key = $this->uri_segment(3);
if($key != null){
list($name, $address) = explode("&&", $key);
$this->db->query("UPDATE social SET address = '" . $address . "' WHERE name = '" . $name . "'");
echo "Affected rows: " . $this->db->affected_rows();
}
}
答案 2 :(得分:1)
可能会在&#34;&amp;&amp;&#34;中创建问题,请在ajax中尝试data: encodeURIComponent(key)
。
答案 3 :(得分:1)
替换此行
var key = name +"&&"+ address;
要 -
var key = name +"-"+ address;
同样在服务器上爆炸( - ),试试吧
答案 4 :(得分:1)
据我所知,问题在于你&#34; var key&#34;,将其改为:var key =&#34; name =&#34; + name +&#34;&amp; &#34; +&#34;地址=&#34 +地址;