I have posted a few questions previously on how to do the same thing, and people have pointed me in the right direction. So my apologies if this is getting repetitive. However I am posting this time to see if someone could spare a couple of seconds to help me with javascript.
I have a form that already submits data into a different table, and want to implement a "pre-canned response feature". This would simply be a drop list selection that when the onChange event fires of an option list it runs the javascript that populates a following text area with appropriate data.
I believe as it is already in a form, I can't simply put it in another form and use submit, also, I want to be able to do this without refreshing the page.`
<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>
This is my HTML form. It uses PHP via SQL to populate the option list, as the pre-canned messages are stored in SQL table.
So what I need to do is somehow link this Javascript (that is called on the onChange):
function updateText()
{
var message = document.getElementById('frm_precan').value;
$('#text_area').val(message)
};
(very basic, I know, but this is where I struggle) So this code wants to pass the ('frm_precan').value; (which is the ID in the table, and the field by which I want to query the correct message)... to a php file that looks like this:
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, and I am using code ignitor, so this could also be a reason why I am getting confused. So the variable wants to come out of the javascript into a controller then go to the SQL query.
If someone can understand what I mean, I will be amazed... and very grateful.
$.ajaxmethod. Also, if it's a separate script (ie not a class), get_message will be a standard function, not a member function/method, so drop thepublickeyword