簡體   English   中英

保存值並將這些值從數據庫保存到頁面上

[英]saving & getting the values onto the page from the database

這是我用來調用查詢以更新數據庫中值的函數:

function updatabout($detailsarr)
    {

        $query = "UPDATE User_details SET Marital_status='" . 
                 $detailsarr['m_status'] . "', Ethnicity='" . 
                 $detailsarr['ethinicity'] . "', Primary_language='" .            
                 $detailsarr['language'] . "', Education_level='" .
                 $detailsarr['education'] . 
                 "' WHERE User_id=".$_SESSION['uid'];
        $queryresult = mysql_query($query);
        echo mysql_error().'<br />'.$query;

}

這里的所有數據都保存到我的數據庫中,除了“愛好”字段,並且愛好字段的值在我的數據庫中顯示為“未定義”,以及單擊“保存”按鈕后,我得到警報並查詢什么我在這里使用過,但是值僅在刷新頁面后才顯示在頁面上。任何人都可以讓我知道我在此代碼中存在的錯誤...謝謝。

更新好,現在我看到您已經編輯並糾正了所涉及代碼中的錯誤。 但是對我來說, <?php =$hobby ?>仍然沒有意義。 它與PHP解析器無關。 如我的答案所述,在此處使用echo

對您的問題的唯一可能解釋是,在生成“ hobby輸入字段時使用的代碼,特別是此片段value=&lt;?=$hobby?&gt; 有問題。

原因:
PHP處理&lt;? <? 不一樣。 前者原樣被回顯,后者告訴PHP此時已啟動PHP代碼並對其進行處理。 然后是unneccesarry =和missing ;

解:
首先使用value="<?php echo $hobby; ?>"始終建議使用完整的PHP標簽()而不是短標簽(),然后您需要告訴PHP通過在此處使用echo / print $hobby的值echo 現在輸出的HTML應該是value="_Some_Hobby_"

現在,如果輸出的HTML仍為value=""即為空,那么您需要檢查$hobby實際持有一個值。

如案例3中http://codepad.org/dvf9bwSd所示

 value="&lt;?php echo $hobby; ?&gt;"

PHP解析器只是將&lt;php .... ?&gt; 事情就是這樣。 因此,請使用文字<>

現在,在案例1中,

value="<?php echo $hobby; ?>"
<?php
var_dump($hobby);
?>

分配任何值的情況下回顯$hobby變量不會顯示任何內容。 並且var_dump也返回NULL

轉到案例2,

<?php
$hobby = "Coding";
?>
value="<?php echo $hobby; ?>"
<? var_dump($hobby); ?>

定義/為$hobby分配一個值,然后將其回顯給我們想要的結果value="Coding"並且var_dump還說這是一個length=6String

也許是代碼未按預期執行的原因,因為您沒有轉義在服務器端腳本中傳遞的數據。

嘗試使用escape javascript函數。

試試這個:

"m_status=" + escape(barr[0]) + "&ethinicity=" + escape(barr[1]) + "&language=" + escape(barr[2]) +" &education=" +escape( barr[3]) + "&hobby=" + escape(barr[4])

您可能還需要使用firebug(firefox)或console(chrome)工具,以便能夠知道在服務器端腳本中傳遞的值。

暫無
暫無

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

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