我如何制作一个简单的AJAX请求来执行PHP?

时间:2014-05-26 22:46:24

标签: javascript php jquery sql ajax

嘿伙计这是一个特定的问题,我想在我的网站上做什么,我无法找到答案,所以我只是提出自己的问题

我想做的事情:

当我按下我网站上的按钮时,它会执行一个javascript函数。在这个JS函数中,我创建了一个数组。这个数组的顺序是AJAX请求功能的关键,因为重点是能够根据自己的喜好对数组进行重新排序。

此数组的内容代表mySQL行。

我希望能够在按下按钮时执行一个php函数,它将获取此数组,并将值设置为" Order"我桌子的一栏。即:数组的第一个元素得到它的"顺序"值设置为1。数组的最后一个元素得到它的" order"值设置为N(但有很多)。

这是我目前的javascript:

<script>
  $(document).ready(function(){
    $( "#sortable" ).sortable({axis:"y"});
    $("button").click(function(){
     var sortedIDs = $( "#sortable" ).sortable("toArray");
      var num = sortedIDs[0];
    alert(num);
    $.post({
    url:"ajax2.php",

    });

  });
});
</script>

以下是我的ajax2.php页面:

<?php
include 'connect.php';
  $sql = "UPDATE categories
      SET cat_order=1
      WHERE cat_id=5;";

$result = mysql_query($sql);

?>

我只是输入数字来测试功能。最后,我希望能够使用javascript数组中设置的信息&#34; sortedIDs&#34;。

为了让我更清楚我想要做的事情......我正在创建一个网络论坛,我想在主页上更改论坛类别的顺序。我创建了一个&#34; sortable&#34; jquery ui接口为了做到这一点。当您按下此界面上的按钮时,它会执行我发布的js功能。它知道类别列表的顺序。并且在您更改之后它知道订单。

2 个答案:

答案 0 :(得分:1)

这可能是一所古老的学校,但我喜欢使用自己的xmlHTTP请求而不是jQuery提供的请求。以下是我认为可以帮助您解决问题的示例。

HTML和Javascript:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script>
// JavaScript Document

function xmlHttp()
{
    this.strHTML;
    this.objXML;
    this.postReturn = function(post, page){
        if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }else{// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function(){
            if (xmlhttp.readyState==4 && xmlhttp.status==200){
                this.strHTML = xmlhttp.responseText;
                this.objXML = xmlhttp.responseXML;
                pageReturn(this.strHTML, this.objXML);
            }
        }
        xmlhttp.open("POST",page,false);
        xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        xmlhttp.send(post);
    }
}

function pageReturn(strHTML, objXML){
    alert(strHTML);
}

function sampleSend(){
    var strPost="";

    //dont forget to encodeURIComponent() when you use this for production
    for(var i=0;i<10;i++){
        strPost += (!strPost)?"blah"+i+"=value"+i:"&blah"+i+"=value"+i;
    }
    var xmlhttp = new xmlHttp();
    xmlhttp.postReturn(strPost, "test.php");
}
</script>
</head>

<body>
<div onclick="sampleSend()">clickMe</div>
</body>
</html>

此示例中的PHP test.php

<?php
foreach($_POST as $k => $v){
    $sql = "insert into tableName (someField) values ('".$v."');";

    //this is uncommented to alert what is happening
    echo $sql . "\n";
    //mysql stuff here
    //this is just an example of looping the $_POST
}
echo "done";
?>

希望这有帮助!

答案 1 :(得分:0)

这是一个基于jquery的ajax代码示例。

$.ajax({
        url     :   "path_to_ajax2.php",
        type    :   "POST",
        data    :   ({sorted_ids:num}),
        success :   function(data){

            //show the sorted array here.
        }
    });
如果你的更新在ajax2.php上成功,并且将控制权返回给ajax调用函数,那就不要回复一些事情。