造成问题的空间构建onClick功能

时间:2011-08-22 01:20:28

标签: php javascript ajax

我有一个函数,我从mysql表中读取了一组值。我的部分代码是这样的。我需要在这里使用完全php的问题是这是一个名为page的ajax。

echo "<tr id='gridRow'>
 <td >$count</td>
 <td> <input type='checkbox' onClick=selectAndUpdate('$row1[size]')></td>
 <td> {$row1[SerialNo]}</td> 
 <td> {$row1[InHouseBranding]}</td> 
 <td> {$row1[BrandCode]}</td> 
 <td> {$row1[size]}</td> 
 <td> {$row1[Pattern]}</td>  
 <td> {$row1[EntryStatus]}</td>   
 </tr>";

生成的样本行如下所示,您可以注意到这一行为什么相同的值在21060R 22.567中正确显示,但在上一行显示我这样22.567')=“”onclick =“selectAndUpdate('21060R”&gt任何想法?

<tr id="gridRow">
<td>1</td>
<td>
<input type="checkbox" 22.567')="" onclick="selectAndUpdate('21060R">
</td>
<td> EA12</td>
<td> BOR1</td>
<td> GY</td>
<td> 21060R 22.567</td>
<td> HMG 2020</td>
<td> New</td>
</tr>

2 个答案:

答案 0 :(得分:0)

你需要引用你的js并转义那些引号。

<td> <input type='checkbox' onClick=\"selectAndUpdate('$row1[size]')\"></td>

如果你写这样复杂的html,最好使用像sprintfstrtr这样的字符串操作函数:

$html = '<tr id="gridRow">
 <td >%s</td>
 <td> <input type="checkbox" onClick="selectAndUpdate(\'%s\')"></td>
 <td>%s</td> 
 <td>%s</td> 
 <td>%s</td> 
 <td>%s</td> 
 <td>%s</td>  
 <td>%s</td>   
 </tr>';

echo sprintf($html, 
  $count, 
  $row1[size], 
  $row1['SerialNo'],
  $row1['InHouseBranding'], 
  $row1['BrandCode'],  
  $row1['size'], 
  $row1['Pattern'], 
  $row1['EntryStatus']
);

但仅限于你在函数或类的上下文中。如果您在模板的上下文中直接输出html,那么最好来回切换:

<tr id="gridRow">
 <td><?php echo $count ?></td>
 <td> <input type="checkbox" onClick="selectAndUpdate('<?php echo $row1['size'] ?>')"></td>
 <td><?php echo $row1['SerialNo']</td> 
 <td><?php echo $row1['InHouseBranding'] ?></td> 
 <td><?php echo $row1['BrandCode'] ?></td> 
 <td><?php echo $row1['size'] ?></td> 
 <td> <?php echo $row1['Pattern'] ?></td>  
 <td><?php echo $row1['EntryStatus'] ?></td>   
</tr>

答案 1 :(得分:0)

生成的代码似乎与echo生成的代码无关,请注意echo编写type='checkbox',而在输出中type="checkbox"(注意引号) 。确保你怀疑正确的回声是错误的。