可编辑动态php表
我正在动态创建一个可编辑的表。它工作得很好,也许对我的需要来说太好了。在我的表格中,我有一个编辑列,每行有一个更改按钮,并自动创建在表格的末尾。您必须单击行上的更改按钮才能对其进行编辑。我想摆脱编辑按钮/列(这样用户可以单击单元格按钮,并且它将始终是可编辑的),并将其设置为用户只能编辑分配给他们的具有特定id的行。此外,我也不知道如何创建在单击单元格按钮时弹出的框,用户将在弹出框中提供选项,当用户选择该选项时,它会将数据加载到单元格中。 谢谢你能提供的帮助可编辑动态php表,php,javascript,jquery,mysql,Php,Javascript,Jquery,Mysql,我正在动态创建一个可编辑的表。它工作得很好,也许对我的需要来说太好了。在我的表格中,我有一个编辑列,每行有一个更改按钮,并自动创建在表格的末尾。您必须单击行上的更改按钮才能对其进行编辑。我想摆脱编辑按钮/列(这样用户可以单击单元格按钮,并且它将始终是可编辑的),并将其设置为用户只能编辑分配给他们的具有特定id的行。此外,我也不知道如何创建在单击单元格按钮时弹出的框,用户将在弹出框中提供选项,当用户选择该选项时,它会将数据加载到单元格中。 谢谢你能提供的帮助 <?php session
<?php
session_start();
$tbvbr= $_SESSION['gamecode'];
$pn = $_POST['playername'];
function stripslashes2( $string )
{
if ( get_magic_quotes_gpc() ) {
return stripslashes( $string );
} else {
return $string;
}
}
function display_db_query( $tablename, $header_bool , $border )
{
// find out the number of columns in result
$result = mysql_query( "SHOW FIELDS FROM $tablename" );
while ( $row = mysql_fetch_assoc( $result ) ) {
if ( $row['Key'] == "PRI" )
$primarykey = $row['Field'];
else
$field[$row['Field']] = array( $row['Type'] );
}
if ( isset( $_POST["update$tablename"] ) ) {
$sql = sprintf( "update $tablename SET " );
$sqlfields = array();
foreach( $field AS $k => $v ) {
if ( !empty( $_POST["edit"][$k] ) )
$sqlfields[] = "$k='" . mysql_real_escape_string( stripslashes2( $_POST["edit"][$k] ) ) . "'";
else
$sqlfields[] = "$k = NULL ";
}
if ( count( $sqlfields ) > 0 ) {
$sql .= implode( " , " , $sqlfields ) . " WHERE $primarykey=" . intval( $_POST["updateid"] ) ;
mysql_query( $sql ) OR DIE( mysql_error() );
if ( mysql_affected_rows() > 0 )
print "Updated succesfully<br />";
}
else
echo "No change<br />";
}
// perform the database query
$result_id = mysql_query( "SELECT * from $tablename" )
or die( "display_db_query:" . mysql_error() );
if ( $header_bool ) {
echo "<table width='850' $border align='center' cellpadding='5' cellspacing='1' class='entryTable'>";
echo "<tr class='entryTableHeader'>";
foreach( $field AS $k => $v )
print( "<td><center><b>$k</b></center></td>" );
print( "<td><center><b>Edit</b></center></td>
</tr>\n" );
} else
echo "<table width='850' $border align='center' cellpadding='5' cellspacing='1' class='entryTable'> ";
while ( $row = mysql_fetch_assoc( $result_id ) ) {
print( "<tr>" );
if ( isset( $_GET["editmode"] ) AND $_GET["editmode"] == $row[$primarykey] ) {
$editmodeison = true;
echo "<form method=\"post\" action=\"{$_SERVER["PHP_SELF"]}\">";
} else
$editmodeison = false;
foreach( $field AS $k => $v ) {
if ( $editmodeison )
print( "<td class='content' align='center'><input type=\"button\" name=\"edit[$k]\" value=\"" . ( !empty( $row[$k] )?htmlspecialchars( $row[$k] ) : htmlspecialchars( '' ) ) . "\" /></td>\n" );
else
print( "<td class='content' align='center'>" . ( !empty( $row[$k] )?htmlspecialchars( $row[$k] ) : htmlspecialchars( 'change' ) ) . "</td>\n" );
}
if ( $editmodeison )
print( "<td class='content' align='center'><input type=\"hidden\" name=\"updateid\" value=\"{$row[$primarykey]}\"><input type=\"submit\" name=\"update$tablename\" value=\"update\"></form></td>\n" );
else
print( "<td class='content' align='center'><a href=\"{$_SERVER["PHP_SELF"]}? editmode=" . $row[$primarykey] . "\">change</a></td>\n" );
print( "</tr>\n" );
}
print( "</table>\n" );
}
?>
<HTML><HEAD><TITLE>Products Orderable table</TITLE></HEAD>
<BODY>
<TABLE><TR><TD>
<?php
/* DB info */
$dbhost = "localhost";
$dbuser = "placeholder";
$dbpass = "placeholder";
$dbname = "placeholder";
mysql_connect( $dbhost, $dbuser, $dbpass ) or die ( "Unable to connect to MySQL server" );
mysql_select_db( "$dbname" );
mysql_query( "SET NAMES utf8" );
$table = $tbvbr;
display_db_query( $table, // $global_dbh,
true, "border='2'" );
?>
</TD></TR></TABLE></BODY></HTML>
您也可以使用HTML5内容编辑。下面是一个简单的例子
dom.contentEditable = true;
设置该选项,任何DOM对象都可以编辑。您可能会使用单击
事件来启用或禁用内容可编辑属性。来回答我自己编辑的问题
if ( $editmodeison )
print( "<td class='content' align='center'><input type=\"hidden\" name=\"updateid\" value=\"{$row[$primarykey]}\"><input type=\"submit\" name=\"update$tablename\" value=\"update\"></form></td>\n" );
else
print( "<td class='content' align='center'><a href=\"{$_SERVER["PHP_SELF"]}?editmode=" . $row[$primarykey] . "\">change</a></td>\n" );
分配给用户的变量id
我还使用了以下Javascript
<script type="text/javascript">
function reply_click(clicked_name)
{
var clicked_name;
document.location="http://www.localhost.com/update.php?location=" + clicked_name;
}
</script>
功能回复点击(点击名称)
{
var和U名称;
文档位置=”http://www.localhost.com/update.php?location=“+你的名字;
}
你知道mysql.*
不推荐使用,对吗?
<script type="text/javascript">
function reply_click(clicked_name)
{
var clicked_name;
document.location="http://www.localhost.com/update.php?location=" + clicked_name;
}
</script>