Forum Moderators: coopster

Message Too Old, No Replies

PHP checkbox

         

Stud323

2:26 am on May 3, 2007 (gmt 0)

10+ Year Member



Hello, I am creating a form that requires checkboxes to be saved to a MySql database. I would like to call on these checkboxes later and populate the checkboxes in a later page. I am new to arrays and I am not sure if this is posting to the database correctly. I have included it below. I am also having problems calling on the array. Would I do something like echo the table field? Any help is appreciated and I apologize for coming off as such a newbie.

#Code--

<?php require_once('Connections/test.php');?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc())? addslashes($theValue) : $theValue;

switch ($theType) {
case "text":
$theValue = ($theValue!= "")? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue!= "")? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue!= "")? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue!= "")? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue!= "")? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO staff (fname, lname) VALUES (%s, %s)",
GetSQLValueString($_POST['fname'], "text"),
GetSQLValueString($_POST['lname'], "text"));

mysql_select_db($database_test, $test);
$Result1 = mysql_query($insertSQL, $test) or die(mysql_error());

$insertGoTo = "http://google.com";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?'))? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<table width="645" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td width="645" height="385" valign="top">
<form method="post" name="form1" action="<?php echo $editFormAction;?>">
<table align="center">
<tr valign="baseline">
<td></td>
<td></td>
<td width="40"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Last Name </td>
<td><input type=checkbox name="lname[]" value="test" />
Test
<input type=checkbox name="lname[]" value="test2" />
Test2</td>
<td></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">&nbsp;</td>
<td><input type="submit" value="Insert record"></td>
<td></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1">
</form>
</td>
</tr>
</table>
</body>
</html>

Ninjabear

9:10 am on May 3, 2007 (gmt 0)

10+ Year Member



To get the values back from your lname[] input array you would use something like this:


$lnames=$_POST['lname'];

I also noticed you are trying to get back data from fname but it isn't in your form.

Your code seems very complicated for what you're trying to do. Why not just use something like:


$lnames=$_POST['lname'];

foreach($lnames as $key =>$value)
{
$query="insert into mytabs(a) values($value)";

if(mysqli_query($dbl,$query))
{
if(mysqli_affected_rows($dbl)==1)
{
echo "Worked!";
}
}
}

Ps. It would help if you indented and maybe commented your code, I'm find it very difficult to read at the moment.

[edited by: Ninjabear at 9:11 am (utc) on May 3, 2007]

jatar_k

11:50 am on May 3, 2007 (gmt 0)

WebmasterWorld Administrator 10+ Year Member



Welcome to WebmasterWorld Stud323 and Ninjabear,

>> indented

this forum software nukes the indenting ;)

Ninjabear

3:39 pm on May 3, 2007 (gmt 0)

10+ Year Member



So is there a way of doing BB code tags, email subscribing to topics, or even quoting someone else's post? I'm finding the whole experience a bit limited at the moment.