[英]Passing session variable through AJAX to PHP file
我的目標是通過ajax語句將$userId
變量(包含會話變量)傳遞到包含回顯表單的php文件中。 目的是在提交表單時,可以將會話變量插入到數據庫中,然后將其用作識別哪些用戶完成哪些條目的方式。
我在將變量數據轉到ajax語句時遇到了一些麻煩。 我究竟做錯了什么?
<?php
session_start();
if(isset($_SESSION['userid'])) {
$userId = mysql_real_escape_string($_SESSION['userid']);
echo $userId;
echo ' (irrelevant code)...
//button that loads form via ajax...
<a href="#" class="small button radius expand" onClick="showAdd(\'$userId\');return false;">Add URL</a>
(irrelevant code)... ';
}
AJAX代碼:
function showAdd(str) {
$('#response').html('Processing Request. Please wait a moment...');
var userId = str;
alert (userId);
$.ajax({
type: "POST",
url: "addUrlForm.php",
data: "userId=" + str,
success: function(msg) {
$('#response').empty();
$('#content01').html(msg).show();
},
error: function () {
alert('error');
}
});
};
編輯:我接受了你的建議(謝謝你),它有所幫助。 現在警報將“$ userId”變量作為字符串返回。 如何將其識別為包含會話數據的變量,而不是字符串? 我試過“showAdd($ userId)”,但是控制台告訴我$ userId沒有定義?
由於您將userId
作為參數發送到showAdd()
函數,因此您應該將代碼更改為:
function showAdd(str) {
var userId = str;
// ...
}
或者只是將參數重命名為userId
:
function showAdd(userId) {
// use userId here
]
為了使您在上面的代碼中發送正確的userId
而不是字符串$userId
,您應該將輸出字符串$userId
雙引號或直接輸出:
echo '<a href="#" class="small button radius expand" onClick="showAdd('.$userId.');return false;">Add URL</a>';
要么:
echo "<a href='#' class='small button radius expand' onClick='showAdd($userId);return false;'>Add URL</a>";
我不明白為什么當userid
已經存在並且作為函數參數傳遞時你會使用$(this)
。
改變這個:
var userId = $(this).attr('userId');
至:
var userId = str;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.