2010-03-09 30 views
0

我在php脚本中构建一些html,以便通过Ajax将其发送回页面。php javascript ajax奇怪的字符串错误

$other_content = Model_Db::dbSelect($query); 

     $div_center .= "<table>"; 
     for($i = 0;$i<sizeof($other_content);$i++) { 
      $div_center .= "<tr>"; 

      $div_center .= "<td><a href='#' onclick='changediv('test','0')'>".$other_content[$i]->content_name."</a></td>"; 
      $temp = "<td><a href='#' onclick='changediv('test','0')'>".$other_content[$i]->content_name."</a></td>"; 
      die($temp); 

      $div_center .= "</tr>"; 
     } 
     $div_center .= "</table>"; 

正如你所看到的,我正在做一个die()来查看创建的字符串。 我的输出中应该是这样的:<a href="#" onclick="changediv(" test','0')'>Content Name</a>

而是我得到:<a href="#" onclick="changediv(" test','0')'="">Content Name</a> 我不明白的地方这=“”来源于我的onclick声明之后...

任何人可以看看有什么不对吗?我有点困惑,因为我真的不知道它可能来自哪里!

干杯

+0

你确定你发布了你实际得到的?如果我们能看到“真实”的输出,这可能会有所帮助 - 在这里,您在代码中使用单引号,并且您说您正在使用双引号;这是真的吗?还是仅仅是你没有复制粘贴实际输出? –

+0

它实际上是在单引号之间,我得到双引号......非常奇怪! – Piero

回答

1

我建议你逃避引号字符

$temp = "<td><a href=\"#\" onclick=\"changediv('test', '0')\">" . 
$other_content[$i]->content_name. "</a></td>"; 

的\”转义双quoute在一个字符串

+0

它的工作,但我仍然不明白为什么不逃避报价会增加=“”....无论如何,感谢您的帮助! – Piero

0

你搞砸了单引号的功能解释作为双引号:

yours <a href='#' onclick='changediv('test','0')'> 

func <a href="#" onclick="changediv(" test','0')'=""> 

它假设这(在%符号之间)%test “‘0’)” =‘’%是你的标签的参数,尝试用双引号代替单引号,使其HTML/XHTML兼容:

<a href="#" onclick="changediv('test','0')"> 

所以单引号和双引号将被正确设置。

你必须更改PHP的报价太