我用javascript ajax从javascript调用PHP的代码似乎有问题. ajax调用似乎是成功的但我没有从PHP函数返回正确的信息.
在PHP函数中,我创建了一个SQL查询.在执行删除查询之前,我将回复查询作为响应进行调试.这是用于显示查询的div的HTML.
<div id="thenode" style="position: absolute; top: 30px; left: 0px; width: 150px; background-color: white; z-index: 9999;"> </div>
这是jquery ajax调用.有两个变量被发送到PHP函数:nodeid用于要删除的节点,以及选项delete for the function.
function deleteitem()
{
//get selected node
var selectnod = getCookie('pnodid');
//define PHP info and make ajax call
$.ajax({
url: "uptree.PHP",
type: "POST",
data: { node: selectnod, option: "delete" },
cache: false,
success: function (response) {
$('#thenode').html(response);
}
});
}
这是PHP函数.
<?PHP
function uptree() {
$node = $_POST['node'];
$option = $_POST['option'];
if($node == '' || $option == '') {
return '';
}
$dbco = MysqL_connect('localhost', 'root', 'mmowebdb');
if (!$dbco)
{
die('Could not connect: ' . MysqL_error());
}
MysqL_select_db("pagelinks", $dbco);
$sql = "DELETE FROM dtree_table WHERE nid='$node'";
return $sql;
}
?>
应该是直截了当但这个ajax调用返回一个空字符串并导致HTML中的div消失.这是我第一次在实际项目中使用ajax.对于知道ajax真正做什么的人来说,问题一定很容易找到.你能说出问题吗? 解决方法: 我找到了答案!感谢所有对sql调用提出建议的人.但这是我的问题的实际答案.
制作ajax Javascript到PHP调用有四个步骤.前两个步骤发生在Javascript中.另外两个步骤发生在PHP中.
步骤1.在Javascript中确定PHP函数中需要哪些变量,检索它们.
步骤2.对PHP函数进行ajax调用. jquery有一种方便的方法将值传递给PHP.在ajax调用的数据项中有一个像这样的名称 – 值对数组.
data: { node: selectnod, option: "delete" },
第3步.在PHP文件中准备好PHP函数.写这样的功能.
function updatetree($node, $option) {
步骤4.回应对该PHP文件中的PHP函数的调用.
通过这四个步骤,您应该成功调用PHP并能够从PHP函数返回信息到javascript.
这是javascript函数.
function deleteitem()
{
//Get selected node to send to PHP function
var selectnod = getCookie('pnodid');
//Define PHP info, specify name of PHP file NOT PHP function
//Note that by loading the PHP file you will probably execute any code in that file
//that does not require a function call
//Send PHP variables in the data item, and make ajax call
//On success perform any action that you want, such as load a div here called thenode
$.ajax({
url: "uptree.PHP",
type: "POST",
data: { node: selectnod, option: "delete" },
cache: false,
success: function (response) {
$('#thenode').html(response);
}
});
}
这是PHP文件uptree.PHP.它有一个定义的函数,称为updatetree.它还有一个echo语句来调用该函数.这似乎是导致函数运行的方法. Ajax本身并不调用该函数.
<?PHP
//Function defined here
//The variables will come from the ajax data statement
function updatetree($node, $option) {
if($node == '' || $option == '') {
return 'Select an item in the tree.';
}
$dbco = MysqL_connect('localhost', 'root', 'mmowebdb');
if (!$dbco)
{
die('Could not connect: ' . MysqL_error());
}
MysqL_select_db("pagelinks", $dbco);
$sql = '';
switch($option) {
case 'delete':
$sql = "DELETE FROM dtree_table WHERE nid='$node'";
break;
case 'add':
list($pagename, $address) = explode(",", $page);
$pagename = trim($pagename);
$address = trim($address);
$sql = "INSERT INTO dtree_table (nid, pid, name, url) values (NULL, ".$node.", '".$pagename."', '".$address."')";
break;
case 'update':
break;
}
if (!empty($sql)) return $sql;
}
//echo statement to run function, variables sent by ajax are retrieved with $_REQUEST
//they could have also been retrieved with $_GET or $_POST
echo updatetree(trim($_REQUEST['node']),trim($_REQUEST['option']),trim($_REQUEST['page']));
?>
所以回顾一下. Javascript获取变量,对PHP文件进行ajax调用. Ajax加载PHP文件,其中包含导致PHP函数运行的echo语句.该PHP函数在同一个文件中定义.函数return语句通过ajax将信息发送回javascript. Javascript对该信息执行某些操作,例如将其加载到HTML页面上的div中. (编辑:北几岛)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|