Hello friends.
this is my php code:
<?php
require ("../../../mySqlCon.inc.php");
?>
<html dir=rtl>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1255">
<title>position</title>
</head>
<body>
<script language=javascript>
var arrOldValues;
function SelectAllList(CONTROL){
for(var i = 0;i < CONTROL.length;i++){
CONTROL.options[i].selected = true;
}
}
function DeselectAllList(CONTROL){
for(var i = 0;i < CONTROL.length;i++){
CONTROL.options[i].selected = false;
}
}
function FillListValues(CONTROL){
var arrNewValues;
var intNewPos;
var strTemp = GetSelectValues(CONTROL);
arrNewValues = strTemp.split(",");
for(var i=0;i<arrNewValues.length-1;i++){
if(arrNewValues[i]==1){
intNewPos = i;
}
}
for(var i=0;i<arrOldValues.length-1;i++){
if(arrOldValues[i]==1 && i != intNewPos){
CONTROL.options[i].selected= true;
}
else if(arrOldValues[i]==0 && i != intNewPos){
CONTROL.options[i].selected= false;
}
if(arrOldValues[intNewPos]== 1){
CONTROL.options[intNewPos].selected = false;
}
else{
CONTROL.options[intNewPos].selected = true;
}
}
}
function GetSelectValues(CONTROL){
var strTemp = "";
for(var i = 0;i < CONTROL.length;i++){
if(CONTROL.options[i].selected == true){
strTemp += "1,";
}
else{
strTemp += "0,";
}
}
return strTemp;
}
function GetCurrentListValues(CONTROL){
var strValues = "";
strValues = GetSelectValues(CONTROL);
arrOldValues = strValues.split(",")
}
</script>
<?php
if ($mode == "doReOrder") {
$myNum = "0";
while ($myNum != $num) {
$product = explode("_",$ro_lsttest[$myNum]);
$resultUpdate = mysql_query("UPDATE tblProductsCats SET position='$myNum' WHERE catID='$catiD' AND productID='$product[0]'") or die(mysql_error());
$myNum++;
}
echo "<script language=javascript>
window.opener.location.reload();
window.close();
</script>";
} else {
?>
<SCRIPT>
function outputList(ar, name, size) {
var strIDs = "<SELECT multiple SIZE=\"" + size + "\" NAME=\"ro_lst" + name + "[]\" id=ro_lst>"
var sel = " SELECTED"
for (var i=0;i<ar.length;i++) {
strIDs += "<OPTION " + sel + "\">" + ar[i][1]
sel = ""
}
strIDs+="</SELECT>"
strIDs+="<INPUT NAME=\"" + name + "\" TYPE=hidden>"
return strIDs
}
function outputButton(bDir,name,val) {
return "<INPUT TYPE=button VALUE=\"" + val + "\" ONCLICK=\"move(this.form," + bDir + ",'" + name + "')\">"
}
function move(f,bDir,sName) {
var el = f.elements["ro_lst" + sName+ "[]"]
var idx = el.selectedIndex
if (idx==-1)
alert("You Have To Select Item First.")
else {
var nxidx = idx+( bDir? -1 : 1)
if (nxidx<0) nxidx=el.length-1
if (nxidx>=el.length) nxidx=0
var oldVal = el[idx].value
var oldText = el[idx].text
el[idx].value = el[nxidx].value
el[idx].text = el[nxidx].text
el[nxidx].value = oldVal
el[nxidx].text = oldText
el.selectedIndex = nxidx
}
}
function processForm(f) {
for (var i=0;i<f.length;i++) {
var el = f[i]
if (el.name.substring(0,6)=="ro_lst[]") {
var strIDs = ""
for (var j=0;j<f[i].options.length;j++)
strIDs += f[i].options[j].value + ", "
f.elements[f.elements[i].name.substring(6)].value = strIDs.substring(0,strIDs.length-2)
}
}
}
</SCRIPT>
<script language=javascript>
function selectAll(formObj, isInverse)
{
for (var i=0;i < formObj.length;i++)
{
fldObj = formObj.elements[i];
if (fldObj.type == 'select')
{
if(isInverse)
fldObj.checked = (fldObj.checked) ? false : true;
else fldObj.checked = true;
}
}
}
</script>
<FORM name=checkboxes METHOD=get ONSUBMIT="processForm(this)"><input type=hidden name=mode value=doReOrder>
<?php
$querySubCats = "SELECT * FROM tblProductsCats JOIN tblProducts on (tblProducts.id=tblProductsCats.productID) WHERE catID='$catID' ORDER BY 'position'";
$resultSubCats = mysql_query($querySubCats)or die($querySubCats);
$num = mysql_num_rows($resultSubCats);
echo "<input type=hidden name=catiD value=$catID><input type=hidden name=num value=$num>";
?>
<SCRIPT>
var arrList = new Array()
<?php
$myI = "0";
$myI1 = "1";
while ($rowSubCats = mysql_fetch_array($resultSubCats)) {
echo "arrList[$myI] = new Array(\"$myI1\",\"$rowSubCats[id]_".stripslashes($rowSubCats[title])."\")\n";
$myI++;
$myI1++;
}
?>
document.write(outputButton(true,"test","Up") + "<BR>")
document.write(outputList(arrList,"test",10) + "<BR>")
document.write(outputButton(false,"test","Down"))
</SCRIPT>
<BR>
<INPUT TYPE=submit VALUE=">>" onClick="SelectAllList(document.forms[0].ro_lst);">
</FORM>
<?php
}
?>
</body>
</html>
and this is the output of that code:
<html dir=rtl>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1255">
<title>position</title>
</head>
<body>
<script language=javascript>
var arrOldValues;
function SelectAllList(CONTROL){
for(var i = 0;i < CONTROL.length;i++){
CONTROL.options[i].selected = true;
}
}
function DeselectAllList(CONTROL){
for(var i = 0;i < CONTROL.length;i++){
CONTROL.options[i].selected = false;
}
}
function FillListValues(CONTROL){
var arrNewValues;
var intNewPos;
var strTemp = GetSelectValues(CONTROL);
arrNewValues = strTemp.split(",");
for(var i=0;i<arrNewValues.length-1;i++){
if(arrNewValues[i]==1){
intNewPos = i;
}
}
for(var i=0;i<arrOldValues.length-1;i++){
if(arrOldValues[i]==1 && i != intNewPos){
CONTROL.options[i].selected= true;
}
else if(arrOldValues[i]==0 && i != intNewPos){
CONTROL.options[i].selected= false;
}
if(arrOldValues[intNewPos]== 1){
CONTROL.options[intNewPos].selected = false;
}
else{
CONTROL.options[intNewPos].selected = true;
}
}
}
function GetSelectValues(CONTROL){
var strTemp = "";
for(var i = 0;i < CONTROL.length;i++){
if(CONTROL.options[i].selected == true){
strTemp += "1,";
}
else{
strTemp += "0,";
}
}
return strTemp;
}
function GetCurrentListValues(CONTROL){
var strValues = "";
strValues = GetSelectValues(CONTROL);
arrOldValues = strValues.split(",")
}
</script>
<SCRIPT>
function outputList(ar, name, size) {
var strIDs = "<SELECT multiple SIZE=\"" + size + "\" NAME=\"ro_lst" + name + "[]\" id=ro_lst>"
var sel = " SELECTED"
for (var i=0;i<ar.length;i++) {
strIDs += "<OPTION " + sel + "\">" + ar[i][1]
sel = ""
}
strIDs+="</SELECT>"
strIDs+="<INPUT NAME=\"" + name + "\" TYPE=hidden>"
return strIDs
}
function outputButton(bDir,name,val) {
return "<INPUT TYPE=button VALUE=\"" + val + "\" ONCLICK=\"move(this.form," + bDir + ",'" + name + "')\">"
}
function move(f,bDir,sName) {
var el = f.elements["ro_lst" + sName+ "[]"]
var idx = el.selectedIndex
if (idx==-1)
alert("You Have To Select Item First.")
else {
var nxidx = idx+( bDir? -1 : 1)
if (nxidx<0) nxidx=el.length-1
if (nxidx>=el.length) nxidx=0
var oldVal = el[idx].value
var oldText = el[idx].text
el[idx].value = el[nxidx].value
el[idx].text = el[nxidx].text
el[nxidx].value = oldVal
el[nxidx].text = oldText
el.selectedIndex = nxidx
}
}
function processForm(f) {
for (var i=0;i<f.length;i++) {
var el = f[i]
if (el.name.substring(0,6)=="ro_lst[]") {
var strIDs = ""
for (var j=0;j<f[i].options.length;j++)
strIDs += f[i].options[j].value + ", "
f.elements[f.elements[i].name.substring(6)].value = strIDs.substring(0,strIDs.length-2)
}
}
}
</SCRIPT>
<script language=javascript>
function selectAll(formObj, isInverse)
{
for (var i=0;i < formObj.length;i++)
{
fldObj = formObj.elements[i];
if (fldObj.type == 'select')
{
if(isInverse)
fldObj.checked = (fldObj.checked) ? false : true;
else fldObj.checked = true;
}
}
}
</script>
<FORM name=checkboxes METHOD=get ONSUBMIT="processForm(this)"><input type=hidden name=mode value=doReOrder>
<input type=hidden name=catiD value=20><input type=hidden name=num value=6><SCRIPT>
var arrList = new Array()
arrList[0] = new Array("1","3_îæø÷ä àì÷èøåðéú")
arrList[1] = new Array("2","1_îçæé÷ ãéñ÷éí òðúé÷ä")
arrList[2] = new Array("3","2_èìôåï ìååéðé")
arrList[3] = new Array("4","4_àçìä îåöø")
arrList[4] = new Array("5","5_àçìä îåöø")
arrList[5] = new Array("6","6_îçæé÷ ãéñ÷éí òúé÷")
document.write(outputButton(true,"test","Up") + "<BR>")
document.write(outputList(arrList,"test",10) + "<BR>")
document.write(outputButton(false,"test","Down"))
</SCRIPT>
<BR>
<INPUT TYPE=submit VALUE=">>" onClick="SelectAllList(document.forms[0].ro_lst);">
</FORM>
</body>
</html>
this code should produce a listbox with all the values in the query.
but from a reason i can't explain, i only get in the list box some of the results. sometimes it's 3/5, other time 2/3 and so on.
the problem only occures with Internet Explorer. i tested the code with Safari mac os x, and mozilla for windows and it worked just fine.
the query num_rows gives the exact rows i except, the problem comes when i try to transger the data to the listbox.