我想知道如何在没有按钮和刷新页面的情况下将输入文本框的值传递给php变量,因为我想将值传递给控制器和模型。我正在使用CodeIgniter。
这只是一个例子。
@GET
@Path("/hello")
@Produces("text/html")
public String hello(@RequestBody String payload) {
return "OK";
}
Controller.php
class Home extends CI_Controller {
public function main(){
$entry_id = $this->input->post('entry_id');
$datas['query'] = $this->model->samplemodel($entry_id);
$this->load->view('sampleview',$datas);
}
}
Model.php
class Model extends CI_Model{
public function samplemodel(entry_id){
$this->load->database();
$this->db->select("fullname");
$this->db->where('entry_id',entry_id);
$query = $this->db->get('position');
return $query->result();
}
}
。 输出将是......
sampleview.php
<input type="textbox" name="id">
<?php
foreach($query as $row){
echo $row->fullname;
}
?>
每次更改输入文本框的值时,输出都将更改。
答案 0 :(得分:1)
在文本框中添加ID
<input type="textbox" id="id">
按下事件keydown后,通过jquery发送POST
$('#id').keydown(function (event)
{
if (eventer code hereent.keyCode == 13)
{
event.preventDefault();
var id = $(this).val();
$.post( "/home/main", { entry_id: id });
}
});
答案 1 :(得分:0)
为textBox提供类或ID,然后使用该id或类来定位文本框的keyup事件 例如。文本框HTML
<input type="textbox" id="txtId">
显示区域html
<div id='innerHTMLDiv'></div>
Jquery live KeyUp事件
$('#txtId').live( 'keyup', function() {
// ajax call to post data
});
现在添加你的ajax调用以在php文件中发布数据。
$('#txtId').live( 'keyup', function() {
var id = $('#txtId').val();
$.ajax({
url: 'sampleview.php',
type: "POST",
data: {id: id},
success: function (res) {
try {
$('#innerHTMLDiv').html(res);
} catch (error) {
$('#innerHTMLDiv').html("<b>Error in load data</b>");
}
}
});
});
现在在sampleview.php文件中获取id值,如下所示。
$id = $_REQUEST['id'];
通过查询获取数据并回显它。这将在您的innerHTMLDiv div中显示您想要在浏览器中查看结果的结果。