今天的3个问题。。。关于PHP调用Js等等。。。
本帖最后由 Unbekannt 于 2009-2-26 16:54 编辑1.紫色字部分, 去除注释后会报错。。。而且就算不运行紫色部分, 实际只运行if之后, 并没有数据写入到MySQL中。。。2楼贴出insertData()和insert()方法。。。
2.红色字部分, 我不知道实际是否真的已经调用了Base.js, 在onsubmit=return check_data()之后。。。即便是false...还是会提交。。。后来我换了一种写法就可以检测到。。。为什么呢。。。
另一种写法及base.js见3楼。。。
3.绿色字部分, 如何判断和获取下拉菜单的信息呢。。。
=================================================
<?php require_once('../config.inc.php');?>
<?php require_once('./check.php');?>
<?php require_once(INCLUDE_PATH.'db.inc.php');?>
<?php require_once(INCLUDE_PATH.'user.inc.php');?>
<?php
$user = new User();
$group = array();
$group = $user->GetGroupList();
if($_SERVER['REQUEST_METHOD']=="POST")
{
if(!$user->CheckAdminExist($_POST['username']))
{
$data = array();
$data['F_USER_NAME'] = $_POST['username'];
$data['F_USER_PASSWORD'] = md5($_POST['pwd']);
$data['F_ID_GROUP_INFO'] = $_POST['groupid'];
if($user->insertData("EM_ADMIN_INFO", $data));
{
echo "erfolgreich hinzufuegt!";
}
## else{
## echo "Fehler";
## echo "<br><a href='AdminList.php?MenuId={$_GET['MenuId']}'>zurueck zu Benutzerliste</a>";
## }
echo "<br><a href='AdminList.php?MenuId={$_GET['MenuId']}'>zurueck zu Benutzerliste</a>";
exit();
}else{
echo "Benutzer existiert schon!";
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="utf-8">
<link href="../css/menu.css" rel="stylesheet" type="text/css">
<script language="javascript" src="../Js/Base.js"></script>
</head>
<form action="" method="post" name="form1" id="form1" onsubmit="JavaScript: return check_data();">
<table width="70%" border="0" align="center">
<tr>
<th height="23" class="caption">Benutzer hinzufügen</th>
</tr>
<tr>
<td bgcolor="#eeeeee">
<table width="70%" border="0" align="center">
<tr>
<td width="18%" align="right">Benutzername: </td>
<td width="82%"><input name="username" type="text" id="username" maxlength="15">
aus 3 bis 15 Zeichen</td>
</tr>
<tr>
<td align="right">Passwort: </td>
<td ><input name="pwd" type="password" id="pwd" maxlength="15">
aus 5 bis 15 Zeichen</td>
</tr>
<tr>
<td align="right">Wiederholung (Passwort): </td>
<td ><input name="pwd2" type="password" id="pwd2" maxlength="15">
noch einmal Passwort eingeben</td>
</tr>
<tr>
<td align="right">Gruppewahl: </td>
<td><select name="groupid" id="groupid">
<option value="">auswählen</option>
<?php
foreach($group as $value)
{
$html = "<option value='{$value['F_ID']}'";
$html .= ">{$value['F_GROUP_NAME']}</option>";
echo $html;
}
?>
</select></td>
</tr>
</table>
</td>
</tr>
<tr>
<th align="center"><input type=submit name=submit value=Speichern></th>
</tr>
</table>
</form>
</html>
<script language="JavaScript">
function test()
{
return false;
}
function check_data()
{
if($('username').value.trim()=='')
{
alert("Benutername darf nicht leer sein!");
$('username').focus();
return false;
}
if($('username').value.trim().len()<3)
{
alert("Benutername muss mehr als 2 Zeinchen sein!");
$('username').focus();
return false;
}
if($('username').value.trim().len()>16)
{
alert("Benutername muss wenig als 17 Zeinchen sein!");
$('username').focus();
return false;
}
if($('pwd').value.trim().len()<5)
{
alert("Passwort muss mehr als 4 Zeinchen sein!");
$('pwd').focus();
return false;
}
if($('pwd').value.trim().len()>16)
{
alert("Passwort muss wenig als 16 Zeinchen sein!");
$('pwd').focus();
return false;
}
if($('pwd').value != $('pwd2').value)
{
alert("Passwort und wiederholtes Passwort sind nicht identisch!");
$('pwd').focus();
return false;
}
if($('groupid').option[$('groupid').selectedIndex].value=="")
{
alert("Eine Gruppe muss ausgewählt werden!");
return false;
}
return false;
}
</script>
insertData()和insert()方法
insertData()和insert()方法======================================================
public function insertData($name, $data)
{
$field = implode(',',array_keys($data));
## $i = 0;
foreach($data as $key=>$val)
{
$value .= "".$val."";
if($key<count($data)-1)
$value .= ",";
## $i++;
}
$sql = "INSERT INTO ".$name."(".$field.") VALUES (".$value.")";
return $this->insert($sql);
}
====================================================
public function insert($sql="")
{
if(empty($sql)) return 0;
if(empty($this->CONN)) return 0;
try
{
$results = mysql_query($sql,$this->CONN);
}catch(Exception $e)
{
$msg = $e;
include(ERRFILE);
}
if(!$results)
return 0;
else
return @mysql_insert_id($this->CONN);
}
另一种写法及base.js
check_data()另一种写法。。。if(form1.username.value=='')
{
alert("Benutername darf nicht leer sein!");
form1.username.focus();
return false;
}
if(form1.username.value.length<3)
{
alert("Benutername muss mehr als 2 Zeinchen sein!");
form1.username.focus();
return false;
}
if(form1.username.value.length>16)
{
alert("Benutername muss wenig als 17 Zeinchen sein!");
form1.username.focus();
return false;
}
if(form1.pwd.value.length<5)
{
alert("Passwort muss mehr als 4 Zeinchen sein!");
form1.pwd.focus();
return false;
}
if(form1.pwd.value.length>16)
{
alert("Passwort muss wenig als 16 Zeinchen sein!");
form1.pwd.focus();
return false;
}
if(form1.pwd.value != form1.pwd2.value)
{
alert("Passwort und wiederholtes Passwort sind nicht identisch!");
form1.pwd.focus();
return false;
}
========================================================
Base.js
function $()
{
var elements = new array();
for(var i=0;i<arguments.length;i++)
{
var element = arguments;
if(typeof element == 'string')
element = document.getElementById(element);
if(arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
if(!Array.prototype.push)
{
Array.prototype.push = function()
{
var startLength = this.length;
for(var i=0;i<arguments.length;i++)
this = arguments;
return this.length;
}
}
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g,"");
}
String.prototype.len = function()
{
return this.replace(/[^\x00-\xff]/g,"aa").length;
} insertData的mysql语句没考虑周全, value一般要注意是否需要引号在外面;
google:prototype
google:php select option value
Server 发表于 2009-2-26 22:55 http://www.dolc.de/forum/images/common/back.gif
roger that. 帮Server 说具体一点。
insert一般格式是这样第
INSERT INTO tableName (fieldName1, fieldName2) VALUES ('value1', 'valuel2')
fieldName 和 value 要先进行 special characters escaping。
关于Javascript ...
─壶酒 发表于 2009-3-1 11:44 http://www.dolc.de/forum/images/common/back.gif
我靠, 多谢了。。。找到原因了。。。原来value没有忘了单引。。。
俄~~~还有这个大小写。。。总是没有注意。。。
页:
[1]