Pokud valuationId
a user
jsou proměnné JavaScriptu a zdrojový kód je prostý statický HTML, negenerovaný žádnými prostředky, měli byste zkusit:
<a href=# onclick="return ReAssign(valuationId,user)">Re-Assign</a>
Pokud jsou generovány z PHP a obsahují řetězcové hodnoty, použijte uvozovky každého proměnné, jako je tato:
<?php
echo '<a href=# onclick="return ReAssign(\'' + $valuationId + '\',\'' + $user + '\')">Re-Assign</a>';
?>
Logika je podobná aktualizovanému kódu v otázce, který generuje kód pomocí JavaScriptu (možná pomocí jQuery?):nezapomeňte použít uvozovky každý proměnná:
var user = element.UserName;
var valuationId = element.ValuationId;
$('#ValuationAssignedTable').append('<tr> <td><a href=# onclick="return ReAssign(\'' + valuationId + '\',\'' + user + '\')">Re-Assign</a> </td> </tr>');
Morálka příběhu je
'someString(\''+'otherString'+','+'yetAnotherString'+'\')'
Bude vyhodnoceno jako:
someString('otherString,yetAnotherString');
Vzhledem k tomu, že byste potřebovali:
someString('otherString','yetAnotherString');
Řešení:Předejte více argumentů pomocí onclick pro html generovaný v JS
Pro html generovaný v JS postupujte jak je uvedeno níže (používáme jednoduchý obalový řetězec asstringu). Každý argument musí být zabalen do jediné uvozovky, jinak bude celý váš argument považován za jeden argument likefunctionName('a,b') , nyní jeho jeden argument s hodnotou a,b.
K uzavření prvního argumentu jednoduchou uvozovkou musíme použít znak escape řetězce zpětné lomítko(), mezi něž vložíme oddělovací čárku a potom začneme další argument jednoduchou uvozovkou. (Toto je magický kód pro použití '\',\''
)
Příklad:
$('#ValuationAssignedTable').append('<tr> <td><a href=# onclick="return ReAssign(\'' + valuationId +'\',\'' + user + '\')">Re-Assign</a> </td> </tr>');
$Name= "'".$row['Name']."'";
$Val1= "'".$row['Val1']."'";
$Year= "'".$row['Year']."'";
$Month="'".$row['Month']."'";
echo '<button type="button" onclick="fun('.$Id.','.$Val1.','.$Year.','.$Month.','.$Id.');" >submit</button>';