如何从JavaScript函数调用PHP函数来访问数据库 [英] How to call PHP functions from a JavaScript function to access a database
问题描述
如何调用位于与JavaScript函数不同的文件中的PHP函数?
How do you call a PHP function that is in a different file from a JavaScript function?
我有一个从onclick函数接收变量的JavaScript函数。该变量是一个id,我将使用它从MySQL数据库检索数据。然后将该变量传递给一个PHP函数,该函数将访问数据库以获取数据并返回到我的JavaScript函数进行显示,但它似乎不工作。我如何让它工作?我正在使用 CodeIgniter PHP。
I have a JavaScript function that recieves a variable from an onclick function. The variable is an id that I will use to retrieve data from a MySQL database. The variable is then passed on to a PHP function that will access the database to get the data and return back to my JavaScript function for display, but it does not seem to be working. How can I get it to work? I am using CodeIgniter PHP.
这是代码。
JavaScript代码位于不同的文件中,名为 divUpdate.php
p>
The JavaScript code is in a different file called divUpdate.php
.
<script type="text/javascript">
function changeDiv(venueID){
//retrieveData(venueID) is a PHP function from venue_model.php
var dest = retrieveData(venueID);
document.getElementById('venue_description').innerHTML=dest;
}
</script>
--- onclick函数调用上面的JavaScript代码。 ----
---Where the onclick function calls the JavaScript code above. ----
<li><a href="#self" class="menulink" class=&{ns4class};
onClick="changeDiv(\''.
$venue_details->VenueID.
'\')">;
---函数retrieveData从上面的JavaScript代码调用。这是在模型(CodeIgniter)。 -
--- Function retrieveData is called from the JavaScript code above. This is in the model (CodeIgniter). --
function retrieveData($venueID){
$query = $this->db->query("SELECT * FROM venue WHERE VenueID = '$venueID' ");
echo $query;
}
推荐答案
使用jQuery可以轻松地修复这个问题。
Use Ajax as already suggested. Using jQuery you will get this fixed with ease.
您需要创建一个控制器来访问Ajax调用。
我只需要这样创建Ajax控制器:
You will need to create a controller to access your Ajax calls. I, simply enough, created the Ajax controller like this:
<?php
class Ajax extends Controller
{
public function index()
{
$this->output->set_output("This is the AJAX Controller");
}
public function get_venue_description( $venueId )
{
$this->load->model('yourmodel');
$data = $this->yourmodel->retrieveData($venueId);
$this->output->set_output($data);
}
}
?>
然后,您的JavaScript代码在实现jQuery之后,应如下所示:
Then your JavaScript code, after implementing jQuery, should look something like this:
<script type="text/javascript">
function changeDiv(venueID)
{
$.get('/ajax/get_venue_description/' + venueId, function(data) {
$('#venue_description').html(data);
});
}
</script>
我没有测试过,但我希望你能得到想法。
I haven't tested it, but I hope you get the idea.
这篇关于如何从JavaScript函数调用PHP函数来访问数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!