[FX.php List] 2 value Lists together help

Steve Winter steve at bluecrocodile.co.nz
Fri Oct 12 11:11:22 MDT 2007


William,

With the bit that doesn't work;

if(in_array($LangAllData,$medLanguages)) {
		echo 'checked=\"checked\" '; //this DOES NOT WORK
}

Try this instead;

if(in_array($vlLanguage,$medLanguages)) {
		echo 'checked=\"checked\" '; 
}

And in the previous line, which does work, you'll need to have;
		echo '<input type="checkbox" name="vlLanguage[]" value="' .
$vlLanguage . '">'; //this works fine

Note the addition of [] after vlLanguage, so that the items get added to an
array to be posted back...

Let me know how you get on...

Cheers
Steve

-----Original Message-----
From: fx.php_list-bounces at mail.iviking.org
[mailto:fx.php_list-bounces at mail.iviking.org] On Behalf Of William Downs
Sent: Friday, 12 October 2007 5:48 p.m.
To: FX.php Discussion List
Subject: Re: [FX.php List] 2 value Lists together help

Hi there Steve,

many thanks for the help - i am still stuck on the first part :-(

I had to ask the boss something, and it turned out that HE had got the
requirements SLIGHTLY wrong, so I tried the following (it was not the
areas but the languages) - it still does not show that checked box -
code =

	<?php
	//first query for only languages spoken
	$groupSize ='All';
	$medLang=new FX($serverIP,$webCompanionPort,'FMPro7');
	$medLang->SetDBData($fmFile,'medLanguages',$groupSize);
	$medLang->SetDBPassword($dbPassword,$dbUser);
	$medLang->AddDBParam('fkMediator',$rowID);
	$medLang->AddSortParam('Language','ascend');
	$medLangResult=$medLang->FMFind();
	
	$medLanguages = array();
	foreach($medLangResult['data'] as $medLangData){
  	array_push($medLanguages, $medLangData['Language'][0]);
	}
	print_r ($medLanguages); //this works fine
	
	//second query for all value list languages
	$groupSize ='All';
	$LangAll=new FX($serverIP,$webCompanionPort,'FMPro7');
	$LangAll->SetDBData($fmFile,'VLLanguages',$groupSize);
	$LangAll->AddSortParam('Language','ascend');
	$LangAll->SetDBPassword($dbPassword,$dbUser);
	$LangAllResult=$LangAll->FMFindAll();
	
		foreach($LangAllResult['data'] as $key=>$LangAllData){	
		
		$langRecid = $LangAllData[recid][0];
		$vlLanguage = $LangAllData[Language][0];
		
		echo '<input type="checkbox" name="vlLanguage" value="' .
$vlLanguage . '">'; //this works fine
		if(in_array($LangAllData,$medLanguages)) {
		echo 'checked=\"checked\" '; //this DOES NOT WORK
}
		echo $vlLanguage;
}
	?>

Any ideas where I went wrong ? been bashing my head for a few hours
now - and I did hope to get it done before I went off !

Kind Regards

William

On 10/12/07, Steve Winter <steve at bluecrocodile.co.nz> wrote:
>
>
>
>
> Hi William,
>
>
>
> Okay, I'll play... I think I understand what you want to do, with the
first
> part of your query, then we'll see if I get that right, and then I'll have
a
> go at the second part...
>
>
>
> I assume that the values returned by the contactAreas search will be a
> subset of the records in the VLAreas table...? If that's correct, this is
> what I'd do...
>
>
>
> $contacts = array();
>
> foreach($contactAreas['data'] as $contact)
>
>   array_push($contacts, $contact['area'][0])
>
>
>
> foreach($VLAreas['data'] as $area) {
>
>   echo '<p><input type="checkbox" name="area[]" value="'.$area.'"';
>
>   if(in_array($area,$contacts)) echo ' checked="checked"';
>
>   echo '>'.$item.'</p>';
>
>
>
> Which should give you a checkbox for all of the records in VLAreas, with
> those checkboxes for which there is a record in contactAreas...
>
>
>
> Now what you need to do is post the data back to FMP... I'd pass the
parent
> ID in the form that you send...
>
>
>
> When you post the data back to the receiving page you should end up with
an
> array called contact, which has the values which have been checked in
it...
>
>
>
> What I would then do is re-perform your initial search, and create an
array
> of the records from contactAreas which has the –recID as the key and the
> area as the value, so;
>
>
>
> $contacts = array();
>
> foreach($contactAreas['data'] as $key => $contact)
>
>   $contacts[$key] = $contact['area'][0];
>
>
>
> Then I'd loop through my posted array and see if the record already
> exists... if it does, then that's great, if not add it...
>
>
>
> foreach($_REQUEST['area'] as $area) {
>
>   if(!in_array($area,$contacts)) {
>
>     // this means that a new area has been checked
>
>     // create a new record
>
>   }
>
> }
>
>
>
> Now you need to do the opposite and find out if any have been unchecked...
>
>
>
> foreach($contacts as $contactKey => $contactValue) {
>
>   if(!in_array($contactValue,$_REQUEST['areas'])) {
>
>     // this means that the box has been unchecked
>
>     // so use $contactKey to delete the record
>
>   }
>
> }
>
>
>
> Hope this makes sense... not tested, but looks solid to me...
>
>
>
> Cheers
>
> Steve
>
>
>
>
>
>
> -----Original Message-----
>  From: fx.php_list-bounces at mail.iviking.org
> [mailto:fx.php_list-bounces at mail.iviking.org] On Behalf Of
> William Downs
>  Sent: Friday, 12 October 2007 3:56 p.m.
>  To: FX.php Discussion List
>  Subject: [FX.php List] 2 value Lists together help
>
>
>
> Hi Guys,
>
>
>
> A quick question (OK, I say quick but that word means different things
>
> to different people)
>
> I run the following query on 3 tables in Filemaker.
>
>
>
> find the Parent record from Contacts table
>
> find any associated child records from ContactAreas table
>
> find ALL records from VLAreas table
>
> Works fine.
>
>
>
> I need to be able to say in PHP - display a checkbox alongside any of
>
> the records from the VLAreas table (I can do that) and if some of the
>
> values from the ContactAreas table matches any of the values from the
>
> VLAreas table, then let the box be checked (sort of like comparing 2
>
> arrays I think)
>
>
>
> I then of course have to be able to FMEdit the changes.
>
>
>
> Does someone already know how to do this ?
>
>
>
> Many kind thanks in advance
>
>
>
> William
>
> _______________________________________________
>
> FX.php_List mailing list
>
> FX.php_List at mail.iviking.org
>
> http://www.iviking.org/mailman/listinfo/fx.php_list
>
>
>
> No virus found in this incoming message.
>
> Checked by AVG Free Edition.
>
> Version: 7.5.488 / Virus Database: 269.14.8/1064 - Release Date:
11/10/2007
> 3:09 p.m.
>
>
>
>
> No virus found in this outgoing message.
>  Checked by AVG Free Edition.
>  Version: 7.5.488 / Virus Database: 269.14.8/1064 - Release Date:
11/10/2007
> 3:09 p.m.
>
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
>
>


-- 
William Downs
Development and Support
BD Databases Ltd
_______________________________________________
FX.php_List mailing list
FX.php_List at mail.iviking.org
http://www.iviking.org/mailman/listinfo/fx.php_list

No virus found in this incoming message.
Checked by AVG Free Edition. 
Version: 7.5.488 / Virus Database: 269.14.8/1064 - Release Date: 11/10/2007
3:09 p.m.
 

No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.488 / Virus Database: 269.14.8/1064 - Release Date: 11/10/2007
3:09 p.m.
 




More information about the FX.php_List mailing list