Пространство, вызывающее проблему, которая строит функцию onClick - PullRequest
0 голосов
/ 22 августа 2011

У меня есть функция, где я читаю из таблицы MySQL набор значений. Часть моих кодов такая. Проблема, почему мне нужно полностью использовать php, заключается в том, что этот ajax называется page.

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"> есть идеи?

<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 голосов
/ 22 августа 2011

Сгенерированный код, по-видимому, не связан с кодом, который создает echo, обратите внимание на то, что echo написано type='checkbox', а на выходе type="checkbox" (обратите внимание на кавычки). убедитесь, что вы подозреваете, что правильное эхо неверно.

0 голосов
/ 22 августа 2011

Вам нужно заключать в кавычки свои js и экранировать эти кавычки.

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

Если ваш пишущий сложный html подобен этому, лучше использовать функцию манипуляции со строками, такую ​​как sprintf или strtr:

$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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...