Jump to content

[SOLVED] multiple form help and processing with a process.php file


CBR

Recommended Posts

 

I got a multiple result form from dhtmlgoodies.com that looked like it was working great, but for some reason it will not send the multiple selected results to the process file. Below is the actual form file and a screen capture of what it is. then below that will be the example basic process file that should grab the arrays and echo them back.

 

sc.jpg

 

THIS IS swat.php

<html>
<head>
<title>Problem Coordination Notification Console</title>

</head>

<body bgcolor="#2B3E4D" vlink="#FFFFFF" link="#FFFFFF" font="black">


<?php require_once('Connections/proweb.php'); // include database connection file ?>

<table width="100%" border=0 cellpadding=0 cellspacing=0>
<tr><td bgcolor=#FFFFFF>

<table width="100%" cellpadding=1 cellspacing=0>
<tr><td bgcolor="#FFFFFF">

<table width=100% cellpadding=1 cellspacing=0><tr>

<td>
<img border=0 src="images/swatheader.jpg"><br>
<form name="theForm" enctype="multipart/form-data" action="process-swat.php" method="post" onsubmit="multipleSelectOnSubmit()">

<font face="arial" size=2 color="#21455F">

<table>
<tr><td>

</td><td width=400></td><td> </td><td><b><font face="arial" size=2 color="#21455F"> <input type="image" name="prev" src="images/preview.jpg" value="Preview" onclick="preview()"> <input type='image' src="images/send.jpg"></b>

</tr>
</table>

<font face="arial" size=2 color="#21455F"><i>This is a description of each step.	

<table>

<tr>
	<td>


<style type="text/css">


.multipleSelectBoxControl span{	/* Labels above select boxes*/
	font-family:arial;
	font-size:11px;
	font-weight:bold;
}
.multipleSelectBoxControl div select{	/* Select box layout */
	font-family:arial;
	height:100%;
}
.multipleSelectBoxControl input{	/* Small butons */
	width:25px;	
}

.multipleSelectBoxControl div{
	float:left;
}

.multipleSelectBoxDiv
</style>
<script type="text/javascript">

/************************************************************************************************************
(C) www.dhtmlgoodies.com, October 2005

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/


var fromBoxArray = new Array();
var toBoxArray = new Array();
var selectBoxIndex = 0;
var arrayOfItemsToSelect = new Array();


function moveSingleElement()
{
	var selectBoxIndex = this.parentNode.parentNode.id.replace(/[^\d]/g,'');
	var tmpFromBox;
	var tmpToBox;
	if(this.tagName.toLowerCase()=='select'){			
		tmpFromBox = this;
		if(tmpFromBox==fromBoxArray[selectBoxIndex])tmpToBox = toBoxArray[selectBoxIndex]; else tmpToBox = fromBoxArray[selectBoxIndex];
	}else{

		if(this.value.indexOf('>')>=0){
			tmpFromBox = fromBoxArray[selectBoxIndex];
			tmpToBox = toBoxArray[selectBoxIndex];			
		}else{
			tmpFromBox = toBoxArray[selectBoxIndex];
			tmpToBox = fromBoxArray[selectBoxIndex];	
		}
	}

	for(var no=0;no<tmpFromBox.options.length;no++){
		if(tmpFromBox.options[no].selected){
			tmpFromBox.options[no].selected = false;
			tmpToBox.options[tmpToBox.options.length] = new Option(tmpFromBox.options[no].text,tmpFromBox.options[no].value);

			for(var no2=no;no2<(tmpFromBox.options.length-1);no2++){
				tmpFromBox.options[no2].value = tmpFromBox.options[no2+1].value;
				tmpFromBox.options[no2].text = tmpFromBox.options[no2+1].text;
				tmpFromBox.options[no2].selected = tmpFromBox.options[no2+1].selected;
			}
			no = no -1;
			tmpFromBox.options.length = tmpFromBox.options.length-1;

		}			
	}


	var tmpTextArray = new Array();
	for(var no=0;no<tmpFromBox.options.length;no++){
		tmpTextArray.push(tmpFromBox.options[no].text + '___' + tmpFromBox.options[no].value);			
	}
	tmpTextArray.sort();
	var tmpTextArray2 = new Array();
	for(var no=0;no<tmpToBox.options.length;no++){
		tmpTextArray2.push(tmpToBox.options[no].text + '___' + tmpToBox.options[no].value);			
	}		
	tmpTextArray2.sort();

	for(var no=0;no<tmpTextArray.length;no++){
		var items = tmpTextArray[no].split('___');
		tmpFromBox.options[no] = new Option(items[0],items[1]);

	}		

	for(var no=0;no<tmpTextArray2.length;no++){
		var items = tmpTextArray2[no].split('___');
		tmpToBox.options[no] = new Option(items[0],items[1]);			
	}
}

function sortAllElement(boxRef)
{
	var tmpTextArray2 = new Array();
	for(var no=0;no<boxRef.options.length;no++){
		tmpTextArray2.push(boxRef.options[no].text + '___' + boxRef.options[no].value);			
	}		
	tmpTextArray2.sort();		
	for(var no=0;no<tmpTextArray2.length;no++){
		var items = tmpTextArray2[no].split('___');
		boxRef.options[no] = new Option(items[0],items[1]);			
	}		

}
function moveAllElements()
{
	var selectBoxIndex = this.parentNode.parentNode.id.replace(/[^\d]/g,'');
	var tmpFromBox;
	var tmpToBox;		
	if(this.value.indexOf('>')>=0){
		tmpFromBox = fromBoxArray[selectBoxIndex];
		tmpToBox = toBoxArray[selectBoxIndex];			
	}else{
		tmpFromBox = toBoxArray[selectBoxIndex];
		tmpToBox = fromBoxArray[selectBoxIndex];	
	}

	for(var no=0;no<tmpFromBox.options.length;no++){
		tmpToBox.options[tmpToBox.options.length] = new Option(tmpFromBox.options[no].text,tmpFromBox.options[no].value);			
	}	

	tmpFromBox.options.length=0;
	sortAllElement(tmpToBox);

}


/* This function highlights options in the "to-boxes". It is needed if the values should be remembered after submit. Call this function onsubmit for your form */
function multipleSelectOnSubmit()
{
	for(var no=0;no<arrayOfItemsToSelect.length;no++){
		var obj = arrayOfItemsToSelect[no];
		for(var no2=0;no2<obj.options.length;no2++){
			obj.options[no2].selected = true;
		}
	}

}

function createMovableOptions(fromBox,toBox,totalWidth,totalHeight,labelLeft,labelRight)
{		
	fromObj = document.getElementById(fromBox);
	toObj = document.getElementById(toBox);

	arrayOfItemsToSelect[arrayOfItemsToSelect.length] = toObj;


	fromObj.ondblclick = moveSingleElement;
	toObj.ondblclick = moveSingleElement;


	fromBoxArray.push(fromObj);
	toBoxArray.push(toObj);

	var parentEl = fromObj.parentNode;

	var parentDiv = document.createElement('DIV');
	parentDiv.className='multipleSelectBoxControl';
	parentDiv.id = 'selectBoxGroup' + selectBoxIndex;
	parentDiv.style.width = totalWidth + 'px';
	parentDiv.style.height = totalHeight + 'px';
	parentEl.insertBefore(parentDiv,fromObj);


	var subDiv = document.createElement('DIV');
	subDiv.style.width = (Math.floor(totalWidth/2) - 15) + 'px';
	fromObj.style.width = (Math.floor(totalWidth/2) - 15) + 'px';

	var label = document.createElement('SPAN');
	label.innerHTML = labelLeft;
	subDiv.appendChild(label);

	subDiv.appendChild(fromObj);
	subDiv.className = 'multipleSelectBoxDiv';
	parentDiv.appendChild(subDiv);


	var buttonDiv = document.createElement('DIV');
	buttonDiv.style.verticalAlign = 'middle';
	buttonDiv.style.paddingTop = (totalHeight/2) - 50 + 'px';
	buttonDiv.style.width = '30px';
	buttonDiv.style.textAlign = 'center';
	parentDiv.appendChild(buttonDiv);

	var buttonRight = document.createElement('INPUT');
	buttonRight.style.marginTop='34px';
	buttonRight.type='button';
	buttonRight.value = '>';
	buttonDiv.appendChild(buttonRight);	
	buttonRight.onclick = moveSingleElement;	



	var buttonLeft = document.createElement('INPUT');
	buttonLeft.type='button';
	buttonLeft.value = '<';
	buttonLeft.onclick = moveSingleElement;
	buttonDiv.appendChild(buttonLeft);		


	var subDiv = document.createElement('DIV');
	subDiv.style.width = (Math.floor(totalWidth/2) - 15) + 'px';
	toObj.style.width = (Math.floor(totalWidth/2) - 15) + 'px';

	var label = document.createElement('SPAN');
	label.innerHTML = labelRight;
	subDiv.appendChild(label);

	subDiv.appendChild(toObj);
	parentDiv.appendChild(subDiv);		

	toObj.style.height = (totalHeight - label.offsetHeight) + 'px';
	fromObj.style.height = (totalHeight - label.offsetHeight) + 'px';


	selectBoxIndex++;

}



</script>	

<?php require_once('Connections/pro_test.php'); // include database connection file ?>


</td>
</tr>
</table>

<table> 
<tr>
<td><font face="arial" size=2 color="#21455F"><b>HDC</td><td><font face="arial" size=2 color="#21455F"><b>Conference Bridge</td>
</tr>
<tr>

<td><textarea name="hdc" rows=1 cols=10>HD</textarea></td>

<td><select name="number"><option value="866-448-6758">866-448-6758 (participant 494047) (host 1790)<option value="866-448-6758">866-448-6758 (participant 979147) (host 8777)<option value="866-448-6758">866-448-6758 (participant 927279) (host 1766)</select></td>

</tr>

</table>

<table>

<tr><td><font face="arial" size=2 color="#21455F"><b>Subject:</td></tr>
<tr>
<td><textarea name="subject" rows=1 cols=67></textarea></td>


<tr><td><font face="arial" size=2 color="#21455F"><b>Message: </td></tr>
<tr>
<td><textarea name="messagebody" rows=3 cols=67></textarea></td>
</tr>

<tr>
<td>

<br><br><b><small><font face="arial" size=2 color="red">You move elements by clicking on the buttons or by double clicking on select box items</b></small></font><br><br>

<select multiple name="fromBox1" id="fromBox1">





</select>
<select multiple name="toBox1" id="toBox1">

<option value="SWAT pages">SWAT pages</option>
<option value="SWAT emails">SWAT emails</option>

</select>

<script type="text/javascript">
createMovableOptions("fromBox1","toBox1",500,110,'Available Broadcast Groups','Selected Broadcast Groups');
</script>

</td></tr>


<tr><td>



<select multiple name="fromBox2" id="fromBox2">

<?php

$resultb = mysql_query("SELECT DISTINCT * FROM arsgroups order by arsgroups asc"); 

    while ($myrow = mysql_fetch_array($resultb)) 

{ 
echo "<option>".$myrow["arsgroups"]."</option>";
}
    ?>



</select>
<select multiple name="toBox2" id="toBox2">

</select>

<script type="text/javascript">
createMovableOptions("fromBox2","toBox2",500,110,'Available Escalation Groups','Selected Escalation Groups');
</script>
<b><small><font face="arial" size=2 color="#000000"></b></small>


</tr></td>

<tr><td>

<select multiple name="fromBox3" id="fromBox3">

   	<?php

$resultc = mysql_query("SELECT * FROM afnames order by name asc"); 

    while ($myrow = mysql_fetch_array($resultc)) 

{ 
echo "<option>".$myrow["name"]."</option>";
}
    ?>



</select>
<select multiple name="toBox3" id="toBox3">

</select>

<script type="text/javascript">
createMovableOptions("fromBox3","toBox3",500,110,'Available Individual Names','Selected Individual Names');
</script>
<b><small><font face="arial" size=2 color="#000000"></b></small>




</td>



</tr>
</table>

</tr>

</table>


<table>


</table>

<table>
<tr>

<td></td><td></td>

</form>
</table>
</tr></td></table>

 

 

 

this is process-swat.php


<?php

include("global.inc.php");
$errors=0;
$error="The following errors occured while processing your form input.<ul>";
pt_register('POST','hdc');
pt_register('POST','number');
pt_register('POST','subject');
pt_register('POST','messagebody');
pt_register('POST','toBox1');
pt_register('POST','toBox2');
pt_register('POST','toBox3');

echo "$hdc<br><br>";
echo "$number<br><br>";
echo "$subject<br><br>";
echo "$messagebody<br><br>";
echo "$toBox1<br><br>";
echo "$toBox2<br><br>";
echo "$toBox3<br><br>";

?>

 

Any help is greatly appreciated.

Link to comment
Share on other sites

Ok... So here is what I am getting now.

 

 

HD123456

 

***-***-****

 

test subject

 

test message

 

Array

(

    [0] => SWAT_pages

    [1] => SWAT_emails

)

 

 

 

 

Array

(

    [0] => ID-FACILITIES

    [1] => ID-IT

    [2] => ID-IT

)

 

 

 

 

Array

(

    [0] => Adam

    [1] => Al

    [2] => Alan

    [3] => Alan

)

 

Looks like anything after the <space> is not being carried over which I can work around. I can't use this data with the formatting it has now. Would prefer to call it using something like $select[1] or $select[2], etc. Is this possible?

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.