PDA

View Full Version : Problem with checkboxes


writegurl
07-10-2007, 05:38 AM
I've added checkboxes to my Suggest Link page. The checkboxes are showing up just fine on the page.

However when I check a few of the boxes, and click the Suggest Link button, all of the information I filled out is there, except for the info from the checkboxes. In other words, I see the site URL, description, etc. Just nothing from the checkboxes. That space is blank.

When I go to the Admin panel, I'm still not seeing any of the checkboxes I previously selected on the Suggest Link page.

Am I doing something wrong? :confused:

Thanks for the assistance.

Dave Baker
07-10-2007, 06:58 AM
Hello writegurl,
Open templates/yourTemplate/suggest-link.tpl and find code:

{elseif $field.type eq 'checkbox'}
{if $link.$key || ($link.$key eq '0')}
{assign var="def_check" value=$link.$key}
{else}
{assign var="def_check" value=$field.default}
{/if}
{foreach from=$field.values item=checkbox name=checkbox_field}
{in_array_exist values=$def_check def=$checkbox}
{if $result_valid}
{assign var="checked" value='checked="checked"'}
{else}
{assign var="checked" value=''}
{/if}

{assign var="field_title_val" value='field_'|cat:$field.name|cat:'_'|cat:$smarty .foreach.checkbox_field.iteration-1}
<input type="checkbox" name="{$key}[]" value="{$checkbox}" id="ch{$checkbox}" {$checked} /><label for="ch{$checkbox}">{$lang.$field_title_val}</label>
{/foreach}

***Replace with***

{elseif $field.type eq 'checkbox'}
{if $link.$key || ($link.$key eq '0')}
{assign var="def_check" value=$smarty.post.$key}
{else}
{assign var="def_check" value=$field.default}
{/if}
{foreach from=$field.values item=checkbox name=checkbox_field}
{in_array_exist values=$def_check def=$checkbox}
{if $result_valid}
{assign var="checked" value='checked="checked"'}
{else}
{assign var="checked" value=''}
{/if}

{assign var="field_title_val" value='field_'|cat:$field.name|cat:'_'|cat:$smarty .foreach.checkbox_field.iteration-1}
<input type="checkbox" name="{$key}[]" value="{$checkbox}" id="ch{$checkbox}" {$checked} /><label for="ch{$checkbox}">{$lang.$field_title_val}</label>
{/foreach}

***Save***

writegurl
07-10-2007, 07:33 AM
Thank you for your suggestion Dave. But that didn't work.

Same results.

Dave Baker
07-10-2007, 08:14 AM
Please post your suggest-link.tpl file, I will try to check it.

writegurl
07-10-2007, 08:21 AM
Thank you Dave. It's posted below.

----------------------------
{include file="header.tpl"}

<h1>{$lang.suggest_link}</h1>

{if $category.locked}
<div class="error">{$lang.error_category_locked}</div>
{else}

{if $msg}
<div class="error"><ol>{$msg}</ol></div>
{/if}

<div class="box">
<div class="box-content">
<form method="post" name="suggest_link" enctype="multipart/form-data" id="suggest_link">

{if $config.sponsored_links AND $plans}
<div class="payment">
{foreach from=$plans item=plan name=plans_dsp}
<p class="field"><input type="radio" name="plan" value="{$plan.id}" id="p{$plan.id}"{if $smarty.foreach.plans_dsp.iteration eq 1} checked{/if}/>
<label for="p{$plan.id}"><strong>{$plan.title} - {$config.currency_symbol}{$plan.cost}</strong></label>
<div style="font-size: 9px; color: #666; padding: 0 10px 5px 30px;">{$plan.description}</div>
</p>
{/foreach}
</div>
{/if}

{if $config.categories_list}
<script type="text/javascript">
{literal}
function get_children()
{
var cat = document.getElementById('id_category');
var ix = cat.selectedIndex;
if(parseInt(cat.value) > -1) {
sdf = window.location.href.split("?");
// if already self submitted
if(sdf[1].match(/(id_category=[^&])/g)) {
sdf[1] = sdf[1].replace(/(id_category=\d+&{1}?)/,"");
}
window.location = sdf[0]+"?id_category="+parseInt(cat.value);
}
}
{/literal}
</script>

<p class="field"><strong>{$lang.category}:</strong><br />
<select name="id_category" id="id_category" style="font-family:courier;" onchange="get_children();">
{$categories_list}
</select>
</p>
{else}
{$lang.suggest_link_top1}<br />
<a href="{if $config.mod_rewrite}{$category.path}/{else}index.php?category={$category.id}{/if}"><strong>{$category.title|escape:"html"}</strong></a><br />
{$lang.suggest_link_top2}
{/if}

{foreach from=$fields item=field}
{assign var="key" value=$field.name}

{if ($key eq 'email') AND $editor AND $editor.email != ''}
<input type="hidden" name="email" value="{$editor.email}" id="{$key}" />
{else}
<p class="field">
{assign var="field_title" value="field_"|cat:$field.name}
<strong>{$lang.$field_title}:</strong><br />
{/if}
{if $field.type eq 'text'}
{if $key eq 'email' AND $editor}
{else}
<input type="text" name="{$key}" value="{if $link.$key}{$link.$key}{else}{$field.default}{/if}" size="30" id="{$key}" /><br />
{/if}
{elseif $field.type eq 'textarea'}
{if $field.name eq 'description'}
<textarea name="description" cols="60" rows="8" onKeyDown="textCounter(document.suggest_link.description,docu ment.suggest_link.length,{$config.description_max_ chars})" onKeyUp="textCounter(document.suggest_link.description,docu ment.suggest_link.length,{$config.description_max_ chars})">{if $link.$key}{$link.$key}{else}{$field.default}{/if}</textarea><br />
<input type="text" name="length" size="3" maxlength="3" value="{$config.description_max_chars}" readonly /> {$lang.characters_left}<br />
{else}
<textarea name="{$key}" cols="60" rows="8" id="{$key}">{if $link.$key}{$link.$key}{else}{$field.default}{/if}</textarea><br />
{/if}
{elseif $field.type eq 'combo'}
<select name="{$field.name}">
{if $link.$key || ($link.$key eq '0')}
{assign var="def_combo" value=$link.$key}
{else}
{assign var="def_combo" value=$field.default}
{/if}
{foreach from=$field.values item=combo name=combo_field}
{if $combo eq $def_combo}
{assign var="selected" value='selected="checked"'}
{else}
{assign var="selected" value=''}
{/if}
{assign var="field_title_val" value='field_'|cat:$field.name|cat:'_'|cat:$smarty .foreach.combo_field.iteration-1}
<option value="{$combo}" {$selected}>{$lang.$field_title_val}</option>
{/foreach}
</select>
{elseif $field.type eq 'radio'}
{if $link.$key || ($link.$key eq '0')}
{assign var="def_radio" value=$link.$key}
{else}
{assign var="def_radio" value=$field.default}
{/if}
{foreach from=$field.values item=radio name=radio_field}
{if $radio eq $def_radio}
{assign var="checked" value='checked="checked"'}
{else}
{assign var="checked" value=''}
{/if}
{assign var="field_title_val" value='field_'|cat:$field.name|cat:'_'|cat:$smarty .foreach.radio_field.iteration-1}
<input type="radio" name="{$key}" value="{$radio}" id="r{$radio}" {$checked}/><label for="r{$radio}">{$lang.$field_title_val}</label>
{/foreach}

{elseif $field.type eq 'checkbox'}
{if $link.$key || ($link.$key eq '0')}
{assign var="def_check" value=$smarty.post.$key}
{else}
{assign var="def_check" value=$field.default}
{/if}
{foreach from=$field.values item=checkbox name=checkbox_field}
{in_array_exist values=$def_check def=$checkbox}
{if $result_valid}
{assign var="checked" value='checked="checked"'}
{else}
{assign var="checked" value=''}
{/if}

{assign var="field_title_val" value='field_'|cat:$field.name|cat:'_'|cat:$smarty .foreach.checkbox_field.iteration-1}
<input type="checkbox" name="{$key}[]" value="{$checkbox}" id="ch{$checkbox}" {$checked} /><label for="ch{$checkbox}">{$lang.$field_title_val}</label>
{/foreach}
{elseif $field.type eq 'storage'}
<input type="file" name="{$key}" id="{$key}" size="30" />
{elseif $field.type eq 'image'}
<input type="file" name="{$key}" id="{$key}" size="30" />
{/if}</p>
{/foreach}

{if $config.captcha}
<p class="field"><img src="{$config.base}{$config.dir}plugins/captcha/image.php?{php} echo $_SERVER['REQUEST_TIME']{/php}" alt="captcha" /><br /><input type="text" name="security_code" /></p>
{/if}

<input type="submit" name="verify_info" value="{$lang.suggest_link}" />
</form>

</div>
</div>

{literal}
<script type="text/javascript">

function textCounter(field,cntfield,maxlimit)
{
if (field.value.length > maxlimit)
field.value = field.value.substring(0, maxlimit);
else
cntfield.value = maxlimit - field.value.length;
}
</script>
{/literal}

{/if}

{include file="footer.tpl"}

Dave Baker
07-10-2007, 09:35 AM
I've found only one thing that produces an error in your code. It a blank between

{assign var="field_title_val" value='field_'|cat:$field.name|cat:'_'|cat:$smarty

and

.foreach.checkbox_field.iteration-1}

You can remove it in in this code:

{elseif $field.type eq 'checkbox'}
{if $link.$key || ($link.$key eq '0')}
{assign var="def_check" value=$smarty.post.$key}
{else}
{assign var="def_check" value=$field.default}
{/if}
{foreach from=$field.values item=checkbox name=checkbox_field}
{in_array_exist values=$def_check def=$checkbox}
{if $result_valid}
{assign var="checked" value='checked="checked"'}
{else}
{assign var="checked" value=''}
{/if}

{assign var="field_title_val"
value='field_'|cat:$field.name|cat:'_'|cat:$smarty .foreach.checkbox_field.iteration-1}

Or try to reimplement changes from the post #2.

writegurl
07-12-2007, 06:25 AM
It's still not working.

I will send a private message.