Jquery ajax从javascript调用到PHP

我用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;">&nbsp;</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中.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...