加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Jquery ajax从javascript调用到PHP

发布时间:2021-07-06 05:20:28 所属栏目:大数据 来源: https://www.jb51.cc
导读:我用javascript ajax从javascript调用PHP的代码似乎有问题. ajax调用似乎是成功的但我没有从PHP函数返回正确的信息. 在PHP函数中,我创建了一个SQL查询.在执行删除查询之前,我将回复查询作为响应进行调试.这是用于显示查询的div的HTML. div id="thenode" styl

我用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中.

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读