簡體   English   中英

在ajax中調用PHP函數

[英]Call PHP function in ajax

我的問題如下:我有一個真正的簡單PHP文件,名為“ writeSettings2.php”,該文件具有:

<?php 
    $text=$_GET["text"];
     setcookie("MG_FileTree_Opener_SelPath", $text);
?>

然后,我有我的PHP頁面,其中有一個名為“ makeChanges”的JavaScript函數,該函數在輸入類型Submit函數中調用,並獲取組合框選擇的值,並通過xmlhttp調用上述PHP函數,如下所示:

<input type="submit" id="choice" value="Escolher" name="Esc" onClick="makeChanges()">

和功能“ makeChanges”如下所示:

function makeChanges(  )
{
    var selObj = document.getElementById('opiniao');    
    var selIndex = selObj.selectedIndex;
    var str = selObj.options[selIndex].text;

    if (window.XMLHttpRequest)

    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();

    }
    else
    {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
   xmlhttp.open("GET","writeSettings2.php?text="+str,true);
   xmlhttp.send(null);
   history.go(0);
}

基本上,我正在做的是使用客戶端上的JavaScript調用PHP函數來重寫客戶端cookie,然后刷新頁面以使PHP可以使用cookie上的新信息來重寫頁面。

這段代碼可以正常工作,但只可以使用2次! 例如,我的combox具有項目1和2。我將其加載為項目1。更改為項目2。更改為項目1。再次更改為項目2 ---- FAILS不再更改,它始終保持為1。

有什么建議么?

您的瀏覽器正在緩存ajax響應。 您需要向ajax請求中添加一個隨機值,或將no-cache標頭放在被調用的頁面中。 您可以像這樣更改javascript來修復它:

var str = selObj.options[selIndex].text+'&random='+(new Date()).getTime();

和/或使用以下php標頭:

header("Cache-control: no-cache");

暫無
暫無

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

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