如何通过onclick传递字符串参数

时间:2016-11-01 05:43:57

标签: javascript php jquery ajax codeigniter

我正在通过ajax函数生成一个表。但我需要添加onclick函数。在此函数中传递两个参数,一个是数字,另一个是名称。

控制器

 $table.='  <td><input type="checkbox"  value="" id="sp_'.$app_id.'" onclick="SpDetails('.$app_id.','.$app_details->app_name.');" /></td>'

 echo  $table;

脚本

 function SpDetails(val,name)
 {
    alert(name)

 }

但是当我发出警报时,我没有得到这个名字。

3 个答案:

答案 0 :(得分:2)

你的参数没有引号所以它会抛出错误。使用\'将参数作为字符串。

$table ='<td><input type="checkbox"  value="" id="sp_'.$app_id.'" onclick="SpDetails(\''.$app_id.'\',\''.$app_details->app_name.'\');" /></td>';

那将用html写为

<input onclick="SpDetails('app_id','app_name');"> //that is just example 

您的原始

<input onclick="SpDetails(app_id,app_name);">  //no quote so assume as variable

答案 1 :(得分:1)

  • 此处" id="sp_'.$app_id.'" "已额外"foo \" foo"
  • 将第二个参数作为字符串传递,以便您错过双引号。
  • 内部双引号应该像"$variable"一样进行转义。
  • 您可以使用双引号 $table.=" <td><input type='checkbox' value='' id='sp_$a' onclick='SpDetails($a,\"$b\");' /></td>"; echo $table; 在字符串中传递变量。

所以你的代码应该是这样的

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:serviceRequest xmlns:ns2="urn:example.com/xml/schemas/v1_0/">
<referenceNum>5361610270000002</referenceNum>
<client>ABCD</client>
<serviceName>GET.PERSONAL.DETAIL</serviceName>
<UserId>USER_1234</UserId>
<data><![CDATA[<ns2:getDetailRequest xmlns:ns2="urn:example.com/xml/schemas/v1_0/">
<HEADER>
<serviceName>GET.PERSONAL.DETAIL</serviceName>
<serviceType>SYNC</serviceType>
<serviceVersion>1.0</serviceVersion>
</HEADER>
</ns2:getDetailRequest>]]>
</data>
</ns2:serviceRequest>
</soap:Body>
</soap:Envelope>

答案 2 :(得分:0)

尝试以下:

 onclick="SpDetails('" .$app_id. "','" .$app_details->app_name. "');"