从 ajax 调用解析 JSON 数据
Parsing JSON data from ajax call
我之前发布了一些关于如何做同样事情的问题,人们为我指出了正确的方向。因此,如果这种情况重复出现,我深表歉意。但是,我这次发布是想看看是否有人可以抽出几秒钟来帮助我使用javascript。
我有一个表单,该表单已将数据提交到不同的表中,并希望实现"预制响应功能"。这只是一个下拉列表选择,当选项列表的onChange
事件触发时,它会运行javascript,该脚本使用适当的数据填充以下文本区域。
我相信因为它已经是表格,我不能简单地把它放在另一种表格中并使用提交,而且,我希望能够在不刷新页面的情况下做到这一点。
<form action="<?=base_url();?>ticket/addmessage/<?=$ticket_details['id'];?>/" enctype="multipart/form-data" method="post" name="message">
<label for="frm_precan">Canned Response</label>
<span class="input">
<select id="frm_precan" name="precan" onchange="updateText()">
<option value="">--Please Select--</option>
<?php foreach($precan_list as $precan) :?>
<option value="<?=$precan['id']; ?>"><?=$precan['name'];?></option>
<?php endforeach; ?>
</select>
</span>
<ul>
<li><label for="message">Message<span class="req">*</span></label><span class="input"></span><br/></li>
</ul>
<textarea style="width: 100%; margin: 0; padding: 0; border-width: 1; font-family: courier;" name="message" rows="10" id="text_area"></textarea>
<button type="submit"><span>Add Message</span></button>
</form>
这是我的HTML表单。它通过SQL使用PHP来填充选项列表,因为预制消息存储在SQL表中。
所以我需要做的是以某种方式链接这个Javascript(在onChange
上调用):
function updateText()
{
var message = document.getElementById('frm_precan').value;
$('#text_area').val(message)
};
(非常基本,我知道,但这是我挣扎的地方)所以这段代码想要传递('frm_precan').value;
(这是表中的 ID,以及我想查询正确消息的字段)......到如下所示的 PHP 文件:
public function get_message($message_id)
{
$sql_list =
"
SELECT *
FROM ".$this->tables_automessages."
WHERE id = '".mysql_real_escape_string($message_id)."'";
$query = $this->db->query($sql_list);
if($query->num_rows() > 0)
{
foreach ($query->result_array() as $row)
{
$return[] =
array(
'message' => $row['message']
);
}
return $return;
}
else return false;
}
}
O,我正在使用代码点火器,所以这也可能是我感到困惑的原因。因此,变量想要从javascript中出来到控制器中,然后转到SQL查询。
如果有人能理解我的意思,我会感到惊讶......并且非常感激。
可以将 updateText 函数更改为此函数,以从控制器获取值并将生成的文本放在文本区域中。
function updateText()
{
var messageId = $('#frm_precan').val();
$.get('/yourcontroller/get_message/' + messageId, function(data) {
$('#text_area').val(data)
});
}
查看您的get_message函数,您应该将其更改为仅返回消息文本而不是数组,否则您需要json_encode结果并将jQuery .get调用更改为.getJSON。
要在 ajax 调用中使用 post:
function updateText()
{
$.ajax({
url: '/controller/get_message',
data: {message_id:$('#frm_precan').val()},//no need to json encode, jQ does this for you
type: 'POST',
dataType: 'json',//or omit, jQ does an intelligent guess
success: function(response)
{
console.log(responese);
//function will be called when the ajax call is completed
}
});
}
在控制器中,get_message成员函数可能如下所示:
public function get_message()
{
$id = $this->input->post('message_id');//=== data key used to send request
//do your query
}
顺便说一句
,这是一个类似的问题在这里,您可以找到可以使用jQuery.ajax
方法指定的各种内容($.ajax
是一回事,$
和jQuery
是同义词)
- 如何将JSON数据导入我的ejs模板
- 如何将json数据显示为html
- Json数据包含日期和时间格式
- 用我的json数据填充JQuery DataTable
- AngularJS加载JSON数据,然后从中解析/加载HTML
- 使用jquery读取Json数据
- 如何将本地json数据加载到Extjs数据模型中
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- React-将jSON数据传递给子组件的子组件
- 尝试从控制器加载带有json数据的Simile时间线
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 如何通过数据分组将json数据转换为嵌套的json数据格式
- 如何在ReactJs中显示Json数据
- 使用javascript进行JSON数据检索
- tu如何将id放在填充了json数据的html表td上
- 将JSON数据从服务器加载到knockout.jsobservable中
- 使用JavaScript处理JSON数据
- 如何将json数据传递到.js文件
- 如何在带有nunjucks和gullow数据的JSON数据中使用带有HTML的内容
- 如何使用var名称调用JSON数据