I've got a sub routine that spits out a nice xml query string. I'm trying to add another sub to deal with multiple field entries. So that, for instance, if someone enter one|two|three in my multipleEntry field (i.e., <input type="text" name="multipleEntry" value="one|two|three">, I end up with:
<multipleEntry><![CDATA[on
e]]></mult
ipleEntry>
<multipleEntry><![CDATA[tw
o]]></mult
ipleEntry>
<multipleEntry><![CDATA[th
ree]]></mu
ltipleEntr
y>
Here's what I've done. Unfortunately, it's only returning the first member, <multipleEntry><![CDATA[on
e]]></mult
ipleEntry>
, instead of all three. Please show me the error.
sub buildWpQuery {
my $xml = "<?xml version=\"1.0\" ?>\n" .
"<Query xmlns=\"
http://www.inmagic.com/webpublisher/query\">\n" .
"<AC>insert</AC>\n" .
"<TN>ConfFeedback</TN>\n" .
"<KeyFields>\n" .
" <KeyField>UniqueID</KeyFie
ld>\n" .
"</KeyFields>\n" .
"<Recordset>\n" .
" <Record>\n" .
" <UniqueID><![CDATA[".$quer
y->param("
UniqueID")
."]]></Uni
queID>\n" .
" <FirstName><![CDATA[".$que
ry->param(
"firstName
")."]]></F
irstName>\
n" .
" <LastName><![CDATA[".$quer
y->param("
lastName")
."]]></Las
tName>\n" .
" <Email><![CDATA[".$query->
param("ema
il")."]]><
/Email>\n"
.
" <Feedback><![CDATA[".$quer
y->param("
feedback")
."]]></Fee
dback>\n" .
" <Status><![CDATA[".$query-
>param("St
atus")."]]
></Status>
\n".
makeMultiple($query->param
("makeMult
iple"));
$xml .= " </Record>\n</Recordset>\n<
/Query>";
return $xml;
}
sub makeMultiple {
my $string = shift;
my @members = split(/\|/,$string);
foreach my $mM(@members) {
return " <MultipleEntry><![CDATA[".
$mM."]]></
MultipleEn
try>\n"}
}
Start Free Trial