问题
I am calling a controller (Codeigniter) through jQuery. My dataString variable contains a simple string, which I'm trying to pass through to my controller, so I can pass it into the model. However, I'm getting an error that indicates that my $test_var is undefined. What am I doing wrong?
$('a.test').click(function (event) {
dataString = $(this).attr('name');
$.ajax({
type:"POST",
url:"<?php echo base_url(); ?>controller_name/",
data:dataString,
success:function (data) {
alert('test');
}
});
event.preventDefault();
});
controller
$test_var= $this->input->post('dataString');
回答1:
Try using a name=value pair:
$('a.test').click(function (event) {
dataString = $(this).attr('name');
$.ajax({
type:"POST",
url:"<?php echo base_url(); ?>controller_name/",
data:'dataString='+dataString,
success:function (data) {
alert('test');
}
});
event.preventDefault();
});
回答2:
you could also do something like this, which is an alternative syntax
$('a.test').click(function (event) {
dataString = $(this).attr('name');
$.ajax({
type:"POST",
url:"<?php echo base_url(); ?>controller_name/",
data:{'dataString':dataString},
success:function (data) {
alert('test');
}
});
event.preventDefault();
});
in your controller $test_var= $this->input->post('dataString');
or just like in vanilla php
$test_var = $_POST['dataString'];
回答3:
use data option like this data: { name: "John", location: "Boston" } for more details plz check http://api.jquery.com/jQuery.ajax/
来源:https://stackoverflow.com/questions/13406690/jquery-ajax-call-to-php-controller