拯救和从数据库中获取值到页面上

时间:2012-07-26 04:22:43

标签: php javascript mysql ajax

这是我用来调用查询来更新数据库中的值的函数:

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;

}

此处所有数据都保存到我的数据库中,除了“爱好”字段,并且我的数据库中的爱好字段的值显示为“未定义”,以及单击保存按钮后,我收到警报&安培;查询我在这里使用的内容,但只有在刷新页面后才会显示在页面上的值...任何人都可以让我知道我在这段代码中的错误...提前感谢..

2 个答案:

答案 0 :(得分:1)

更新确定,现在我看到您已编辑并修复了相关代码中的错误。但是<?php =$hobby ?>对我来说仍然没有意义。它告诉PHP解析器无所事事。在那里使用echo,如我的回答中所述。

对您的问题唯一可能的解释是,在生成hobby输入字段时使用的代码,特别是此片段value=&lt;?=$hobby?&gt;存在问题。

原因:
PHP处理&lt;?<?的方式不同。前者按原样回应,后者告诉PHP此时PHP代码已启动并进行处理。然后是非必要的=并且缺少;

解决方案:
首先使用value="<?php echo $hobby; ?>"总是建议使用完整的PHP标记()而不是短标记()然后你需要告诉PHP使用$hobby在这里回显/打印echo的值。现在输出HTML应为value="_Some_Hobby_"

现在,如果输出HTML仍然是value="",即为空,那么您需要检查$hobby是否实际拥有值。

如案例3中的http://codepad.org/dvf9bwSd所见,

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

PHP Parser只是简单地将&lt;php .... ?&gt;的东西分块。所以使用文字<&amp; >

现在,在案例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也表示它是String length=6

答案 1 :(得分:0)

可能是您的代码没有按预期执行的原因,因为您没有转义在服务器端脚本上传递的数据。

尝试使用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)或控制台(chrome)工具,以便您能够知道服务器端脚本上传递的值。