[FX.php List] 2 value Lists together help
William Downs
william.downs at gmail.com
Fri Oct 12 11:13:19 MDT 2007
Hi again,
so, I fixed it up now (at least the first part anyway) - I will try
the second part later. Here is what I have :-
<?php
$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
?>
</fieldset>
<fieldset>
<legend>Languages</legend>
<?php
$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];
if(in_array($vlLanguage,$medLanguages)) {
echo '<input type="checkbox" name="vlLanguage" checked=\"checked\"
value="' . $vlLanguage . '">'.$vlLanguage; //this workd fine
} else {
echo '<input type="checkbox" name="vlLanguage" value="' .
$vlLanguage . '">'.$vlLanguage; //this workd fine
}
}
?>
On 10/12/07, William Downs <william.downs at gmail.com> wrote:
> 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
>
--
William Downs
Development and Support
BD Databases Ltd
More information about the FX.php_List
mailing list