簡體   English   中英

我如何提出一個簡單的AJAX請求來執行php?

[英]How do i make a simple AJAX request to execute php?

大家好,這是一種特定於我要在我的網站上執行的問題,我找不到答案,所以我只問自己一個問題

我正在嘗試做的是:

當我按我網站上的按鈕時,它將執行javascript函數。 在此JS函數中,我創建了一個數組。 該數組的順序是AJAX請求功能的關鍵,因為重點在於能夠根據自己的喜好對數組進行重新排序。

該數組的內容表示mySQL行。

我希望能夠在按下按鈕時執行php函數,該函數將采用此數組,並將值設置為表的“ Order”列。 即:數組的第一個元素的“ 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數組“ sortedIDs”中設置的信息。

為了更清楚地說明我通常要做什么。...我正在創建一個網絡論壇,我想更改主頁上我的論壇類別的順序。 為了做到這一點,我創建了一個“可排序的” jquery ui接口。 當您按下該界面上的按鈕時,它將執行我發布的js函數。 它知道類別列表的順序。 更改順序后,它就會知道順序。

這可能有點老了,但是我喜歡使用自己的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";
?>

希望這可以幫助!

這是一個基於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調用函數的情況下回顯某些內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM