Wert wird doppelt übergeben

PhoenixDH

Erfahrenes Mitglied
Hallo zusammen,

ich habe mal wieder ein Problem.

Also zur Erklärung was das ganze macht:
Es wird per AJAX Usernamen gesucht, die der User beginnt einzufügen in die INPUT-Box.
Wird der Username im anschließend erst erscheinenden Fenster angeklickt, soll er übergegeben werde. Das passiert aber doppelt!

Es wird z.B.
Code:
User;User
übergeben anstatt
Code:
User

Das Usernamen mit ; getrennt werden ist auch in der File mit drin, aber eigentlich sollte das nur passieren wenn in dem document.opener Feld schon was steht, und dann sollten die aneinandergereiht werden, nicht doppelt erscheinen.

Hier mal der Code
PHP:
<script type="text/javascript" src="ajax/ajax_searchfunctions.js"></script>
<script language="javascript" type="text/javascript">
<!--
function refresh_username(selected_username)
{

	if (selected_username == '-1')
	{
		return;
	}

<!-- Start replacement - Custom mass PM MOD -->
if (opener.document.forms['post'].username.value)
{
	opener.document.forms['post'].username.value = opener.document.forms['post'].username.value + ';' + selected_username;
}
else
{
	opener.document.forms['post'].username.value = selected_username;
}
<!-- End replacement - Custom mass PM MOD -->

	opener.focus();
	window.close();
}
//-->
</script>

<form method="post" name="search" action="{S_SEARCH_ACTION}">
<table width="100%" border="0" cellspacing="0" cellpadding="10">
	<tr>
		<td><table width="100%" class="forumline" cellpadding="4" cellspacing="1" border="0">
			<tr> 
				<th class="thHead" height="25">{L_SEARCH_USERNAME}</th>
			</tr>
			<tr> 
				<td valign="top" class="row1"><span class="genmed"><br><input type="text" name="search_username" value="{USERNAME}" class="post" onkeyup="AJAXUsernameSearch(this.value, 1);">&nbsp; <input type="submit" name="search" value="{L_SEARCH}" class="liteoption"></span><br><span class="gensmall">{L_SEARCH_EXPLAIN}</span><br>

				<span class="genmed" id="username_list" {USERNAME_LIST_VIS}>{L_UPDATE_USERNAME}<br><span id="username_select"><select name="username_list">{S_USERNAME_OPTIONS}</select></span>&nbsp; <input type="submit" class="liteoption" onClick="refresh_username(this.form.username_list.options[this.form.username_list.selectedIndex].value);return false;" name="use" value="{L_SELECT}"></span><br>

				<br><span class="genmed"><a href="javascript:window.close();" class="genmed">{L_CLOSE_WINDOW}</a></span></td>
			</tr>
		</table></td>
	</tr>
</table>
</form>

Also es liegt an dem Part:
PHP:
if (opener.document.forms['post'].username.value)
{
	opener.document.forms['post'].username.value = opener.document.forms['post'].username.value + ';' + selected_username;
}
else
{
	opener.document.forms['post'].username.value = selected_username;
}
der müsste geändert werden. Denn wenn ich nur
PHP:
opener.document.forms['post'].username.value = selected_username;
verwende klappt das das zumindest der Name nur einmal eingefügt wird.
Vielleicht kann mir ja anhand dem Code helfen, wäre dankbar!
 
Zuletzt bearbeitet:
Moin,

checke mal zuerst(über einen alert bspw. ) , ob die Funktion wirklich nur 1x aufgerufen wird.

Was mir auf jeden Fall spanisch vorkommt, ist jenes:

Code:
<!-- Start replacement - Custom mass PM MOD -->

....

<!-- End replacement - Custom mass PM MOD -->

Das sind HTML-Kommentare, die dort nichts verloren haben, vielleicht verwirren diese ja den Browser(eigentlich sollten sie die Ausführung der Funktion komplett verhindern).
 
Zurück