2011-12-26 134 views
0

當用戶登錄時,我將電子郵件存儲在$ email中(我也嘗試過全局$ email)。然後,我有一個表格,他們鍵入他們的室友的名字來搜索已安排的約會。在AJAX處理頁面上調用php變量

AJAX

$("#reserveAPickupAppointmentForm3").submit (function() { 
    roommate = $("#roommate").val(); 
    $.post('roommateSearch.php', 'val=' + roommate, function (response) { 
    $("#roommateResults").html(response); 
    }); 
return false; 
}); 

在roommateSearch.php,如果約會被發現,你可以點擊預約安排一個爲自己在同一時間。然後我將這些信息發佈到postAppointment.php的另一個處理頁面,以便我可以將其插入到數據庫中。

 $(".confirmAppointment").click (function() { 
      $(".confirmAppointment").unbind("click"); 
      var location = $(".reserveAPickupAppointmentLocation", entry).text(); 
      var subLocation = $(".reserveAPickupAppointmentSubLocation", entry).text(); 
      var startTime = $(".reserveAPickupAppointmentStartTime", entry).text(); 
      var endTime = $(".reserveAPickupAppointmentEndTime", entry).text(); 
      var date = $(".reserveAPickupAppointmentDate", entry).text(); 

      alert (location + subLocation + startTime + endTime + date); 

      $.post("postAppointment.php", "location=" + location + "subLocation=" + subLocation + "startTime=" + startTime + "endTime=" + endTime + "date=" + date, function (response) { 
       alert (response); 
      }); 
     }); 

但是,爲了正確創建約會,我需要重新捕獲用戶的電子郵件並將其添加到SQL語句中。但是,當我在postAppointment.php上調用$ email時,什麼也沒有顯示出來。我將如何做到這一點?

我已經調用了將原始表單作爲隱藏的輸入文本框添加到$ email作爲值的想法,然後將該信息與剩餘的信息一起傳遞,但肯定有更簡單的方法...我希望有一種方法可以讓postAppointment.php識別$ email。

回答

1

當用戶成功地登錄,保住自己的電子郵件ID在會話變量。你可以在你的ajax處理頁面中訪問這個變量值。

檢查您是否在訪問會話變量的頁面中添加了「php session_start()」。

+0

感謝您的建議,但這似乎不起作用,並在響應中顯示空白。 $ _SESSION [「email」]是否可以在主頁面的php – radleybobins 2011-12-26 01:33:07

+2

中工作一旦你設置了會話,你應該可以訪問其他PHP頁面。您是否在您嘗試訪問的頁面頂部添加了php session_start()? – Shyju 2011-12-26 01:34:49

+0

哦,我沒有意識到我需要每個頁面上的session_start,如果我正確理解你,我需要這樣做嗎?我想我會在第一次會議開始時就想到,我不需要這樣做。到目前爲止,我的所有網頁都已經包含在roommateResults.php和postAppointment.php的例外中,所以可以明白爲什麼我不需要這樣做。 – radleybobins 2011-12-26 01:37:06

1
+0

所以我用sessons,我變量保存在$ _SESSION [「電子郵件」]爲好,但是,這並不工作,要麼(我會馬上再次嘗試這個仔細檢查,但我很確定我之前嘗試過) – radleybobins 2011-12-26 01:27:08

+0

是的,我只是再次檢查了這一點,它仍然顯示爲空白。 $ _SESSION [「email」]在頁面的主php中工作。 – radleybobins 2011-12-26 01:32:24

+0

啊,事實證明我沒有在處理頁面上重新開始我的會話。你的解決方案工作,但我已經標記了上面正確的答案,因爲它提到了被遺忘的session_start()。非常感謝您的時間! – radleybobins 2011-12-26 01:41:24

1

$ email是否在同一個腳本上聲明?

否則,您可以使用會話變量,啓動一個會話和變量保存在session中,

session_start(); 
$_SESSION['email']=$email; 

如果這是那麼一個真正的系統知道會議並不總是安全的,有許多問題,例如會話固定,會話劫持,所以採取的安全措施與會話

此外,您還可以使用餅乾,當用戶登錄,設置cookie

setCookie("email",$email); 

然後拿到餅乾,$getEmail=$_COOKIE['email']

+0

設置會話dos似乎不適合我,因爲$ _SESSION [「email」]在頁面的主體中工作,但在AJAX中返回空白。 Cookies是一個很好的建議,我想我會在下面嘗試。我會讓你知道它是怎麼回事 – radleybobins 2011-12-26 01:36:11

+0

啊,事實證明我沒有在處理頁面上重新開啓我的會話。你的解決方案工作,但我已經標記了上面正確的答案,因爲它提到了被遺忘的session_start()。非常感謝您的時間! – radleybobins 2011-12-26 01:41:11

+0

nopes,其確定,重要的是,你的東西工作:) – Noor 2012-01-05 03:04:30

相關問題