关于PHP的表单递交,于变量传递问题

SnakeDG 2009-08-28 06:18:46
刚刚开始学习PHP,我是直接找功能点写,只要能完成就是胜利,不懂什么就查

这次想写一个最简单的类似留言板的功能
想让表单和处理页都在一个页里
就是说POST数据就传递到本页里去,不需要跳转到别的页面进行数据处理
具体我自己写的时候出现以下问题

用function自定义一个函数
function chat()
{
$conn=mysql_connect(localhost,root,123123);
mysql_select_db(netbook,$conn);
mysql_query("SET NAMES UTF8");
$sql="INSERT INTO chatroom (time,user,post) VALUES (now(),'$user','$post')";
mysql_close($conn);
$post="";
}

我的写法是表单里不用POST传递而是直接使用button的onclick事件直接执行<?mysql_query($sql,$conn);?>
$user和$post变量直接从
<INPUT type="text" name="user" size="14" maxlength="14" value=<?$user?>>
<INPUT type="text" name="post" size="80" maxlength="80" value=<?$post?>>
里获取
试验是不可行

而我之用使用POST提交不用自定义函数的话每次打开页面就会自动写入一条空信息
用if 判断$post是否非空也不行

弄到现在不知道怎么解决,反而越来越不知道怎么写,就来求教
希望各位给个思路,给个例子

另外怎么让function获得在外部的变量?
不是太懂
...全文
48 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
影子Sirk 2009-08-29
function获得在外部的变量可以用全局变量global或者超全局变量$GLOBALS数组。。。具体用法参考php手册
回复
webztdh 2009-08-29
[Quote=引用 7 楼 snakedg 的回复:]
楼上,主要问题是一旦打开a.php的话就会直接运行mysql_query($sql);

在数据库里插入一条空记录
如何写才能让a.php在打开的时候判断$post为空而不去执行上面的mysql_query($sql);


[/Quote]
关于这个问题,加个判断就可以了
if(isset($_POST[''])){
//执行数据库插入代码
}
回复
SnakeDG 2009-08-28
楼上,主要问题是一旦打开a.php的话就会直接运行mysql_query($sql);

在数据库里插入一条空记录
如何写才能让a.php在打开的时候判断$post为空而不去执行上面的mysql_query($sql);

回复
tfxg 2009-08-28
html代碼你再整理下
回复
tfxg 2009-08-28
a.php

conn=mysql_connect(localhost,root,123123);
mysql_select_db(netbook,$conn);
mysql_query("SET NAMES UTF8");
$sql="INSERT INTO chatroom (time,user,post) VALUES (now(),'".$_POST[user]."','".$_POST[post]."')";
mysql_query($sql);
mysql_close($conn);

$html=<<<HTML
<html>
<form name="form" action="a.php" method="post">
<table>
<tr><td>
<INPUT type="text" name="user" size="14" maxlength="14" value="" >
<INPUT type="text" name="post" size="80" maxlength="80" value="">
<INPUT type="submit" name="save" size="80" maxlength="80" value="Save">
</tr></td>
</table>
</form>
</html>
HTML;
echo $html;
回复
SnakeDG 2009-08-28
错了.我说的是1楼
3楼的方法用JS提交每次刷新页面不会添加空记录?

回复
SnakeDG 2009-08-28
楼上请仔细看我的需求

如果能给我一个表单和处理页共存的例子就行了
回复
dzxccsu 2009-08-28
问的真多。你自己都没把问题给理清楚,首先,表单

<form name="form" action="a.php" method="post"></form>
提交可以用submit提交,也可以用button调用JS提交
1.submit提交a.php直接就可提交

<form name="form" action="a.php" method="post">
<input type="submit" name="sbt" value="提交">
</form>

2.button调用JS提交a.php

<script>
function tijiao(){
window.form.submit();
}
<form name="form" action="a.php" method="post">
<INPUT type="text" name="user" size="14" maxlength="14" >
<INPUT type="text" name="post" size="80" maxlength="80" onclick="tijiao()">
</form>

让function()获得外部变量 ?传值就可以拉
回复
tfxg 2009-08-28
$_POST[user]
$_POST[post]
為你表單提交過來的變量
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告