问题描述
我正在一个PHP项目上,需要进行ajax调用,但是它的设置方式是“从未见过。我有一个文件:index.PHP看起来像这样:
echo '<input id=ajax_redraw name=ajax_redraw type=button value="Redraw" onclick="ajaxtest()" />';
echo '<div id=destination_div name=destination_div class=ajax_test >';
echo '</div>';
echo end_page();
function redraw_destination_div()
{
global $db;
$select = $db->select()
->from( EPRESCRIBING_ERROR_MESSAGES,'error_message' );
$errors = $db->fetchCol( $select );
$random_key = rand( 0,(count($errors)-1) );
$errror_message_for_destination_div = $errors[$random_key];
}
我需要在div上显示变量$ errror_message_for_destination_div,其ID为destination_div。
我的JavaScript代码如下:
function ajaxtest() {
// Getting the specific div to target
var targetArea = document.getElementById("destination_div");
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST","ajax_test.PHP",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function() {
if (this.readyState === 4 || this.status === 200){
targetArea.innerHTML = 'SEE ME';
console.log(this.responseText); // echo from PHP
}
};
xmlhttp.send();
}
我可以显示“再见”文本,没有问题。我只需要知道如何调用和显示PHP函数redraw_destination_div的响应即可。谢谢您的帮助。
解决方法
您需要重写PHP。
HTTP请求是针对URL而不是功能。
您需要一个URL,可以请求获取所需数据(仅 您需要的数据)。
当前,您有一个PHP程序,该程序:
- 在Ajax响应中输出您不需要不需要的
public void FuncToCall(object parameter) { var param = (MyCommandParameter)parameter; // do something with param.MyInt and param.MyString }
。 - 创建一个将所需数据存储在变量中的函数。
- 不调用该函数。
- 在响应中不输出变量的内容。