簡體   English   中英

通過AJAX將會話變量傳遞給PHP文件

[英]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.

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