如题。我在html页面用了js,给php传值,php经过数据库查询操作之后把结果排好样式,打包成$content这样写进传回给html的<div>显示。但是每当在$content加入js语句就不能显示结果。。可是我需要在这里$html里面js怎么办啊
部分源码:
html:
$.post("result.php", { "p":p },function(data){
str = data;
document.getElementById("resText1").innerHTML = str;
});
php:
while($row = mysql_fetch_array($res)){
$content .= "
<div class='t_area_out item' style='border-width:2px;'>
<div class='t_area_in'>
<table class='at_jrat'>
<tbody>
<tr>
<td>
<div class='at_jrat_title'>
<a href='?view=".$row['id']."'>".$row['name']."</a>
</div>
</td>
</tr>
</tbody>
</table>
<div class='t_deal_r'>
<div class='t_deal_r_img'>
<a href='?view=".$row['id']."'><img src='".$row['url']."'/></a>
</div>
</div>
<div style='position: relative;' class='t_deal'>
<div class='t_deal_l'>
<div class='at_buy'>
<div class='price'>¥".$row['nowprice']. "</div>
<div class='deal_b'>
<a href='?view=".$row['id']."' style='width:100px; height:100px; display: block;'></a>
</div>
</div>
<div class='at_shuzi'>
<ul>
<li><span>原价</span><b class='prime_cost '>¥".$row['price']."</b></li>
<li><span>折扣</span><b>".$row['price']."折</b></li>
<li><span>节省</span><b>¥".($row['price']-$row['nowprice'])."</b></li>
</ul>
</div>
</div>
<div class='mb_0624'>
<div class='deal_djs' id='remainTime_".$row['id']."'>
<script>alert('good');</script>
</div>
</div>
<div id='tuanState' class='mb_0626'><b>".$row['nowprice']."</b>人已购买</div>
</div>
</div>
<div style='clear: both; height: 0px;'>
</div>
</div>
"
;注意:这里的<script>alert()</script>这样写进$content是显示不出来的,有什么方法么?各位老大
部分源码:
html:
$.post("result.php", { "p":p },function(data){
str = data;
document.getElementById("resText1").innerHTML = str;
});
php:
while($row = mysql_fetch_array($res)){
$content .= "
<div class='t_area_out item' style='border-width:2px;'>
<div class='t_area_in'>
<table class='at_jrat'>
<tbody>
<tr>
<td>
<div class='at_jrat_title'>
<a href='?view=".$row['id']."'>".$row['name']."</a>
</div>
</td>
</tr>
</tbody>
</table>
<div class='t_deal_r'>
<div class='t_deal_r_img'>
<a href='?view=".$row['id']."'><img src='".$row['url']."'/></a>
</div>
</div>
<div style='position: relative;' class='t_deal'>
<div class='t_deal_l'>
<div class='at_buy'>
<div class='price'>¥".$row['nowprice']. "</div>
<div class='deal_b'>
<a href='?view=".$row['id']."' style='width:100px; height:100px; display: block;'></a>
</div>
</div>
<div class='at_shuzi'>
<ul>
<li><span>原价</span><b class='prime_cost '>¥".$row['price']."</b></li>
<li><span>折扣</span><b>".$row['price']."折</b></li>
<li><span>节省</span><b>¥".($row['price']-$row['nowprice'])."</b></li>
</ul>
</div>
</div>
<div class='mb_0624'>
<div class='deal_djs' id='remainTime_".$row['id']."'>
<script>alert('good');</script>
</div>
</div>
<div id='tuanState' class='mb_0626'><b>".$row['nowprice']."</b>人已购买</div>
</div>
</div>
<div style='clear: both; height: 0px;'>
</div>
</div>
"
;注意:这里的<script>alert()</script>这样写进$content是显示不出来的,有什么方法么?各位老大
解决的方法很多,但都超出了php的范围,请到 javascrpit 和 ajax 版面求解
str = data;
document.getElementById("resText1").innerHTML = str;
alert("good"); //移动到这里执行
});
{
document.getElementById("oDiv").innerHTML = xmlhttp.responseText;
var scripts = document.getElementById("oDiv").getElementsByTagName("script");
for(var i=0;i //一段一段执行script
{
eval(scripts[i].innerHTML);
}
}else if(window.navigator.userAgent.indexOf("MSIE")!=-1)
{
var httpText = xmlhttp.responseText;
httpText = httpText.replace(/ ]*>/gi," <script defer>")//因为 <script defer>可以在IE上直接运行,所以把所有的script标签都替换成defer标记的script
document.getElementById("oDiv").innerHTML = httpText;
}
<div id="dv"></div>
<script>
window.onload=function(){
var dv=document.getElementById('dv');
var s='a23<script>alert(123)</'+'script>afafe<script>alert(456)</'+'script>';
if(window.navigator.userAgent.indexOf("Firefox")>=1) { //针对FF
dv.innerHTML=s;
var scripts = dv.getElementsByTagName("script");
for(var i=0;i<scripts.length;i++){ //一段一段执行script
eval(scripts[i].innerHTML);
}
}else if(window.navigator.userAgent.indexOf("MSIE")!=-1) {
s=s.replace(/<script/gi,"<script defer ")//因为 <script defer>可以在IE上直接运行,所以把所有的script标签都替换成defer标记的script
dv.innerHTML=s;
}
}
</script>
你可以在后台把HTML和JS分开
$content = array(
"html" => "xxxx",
"js" => "sdfkjskdf"
);
echo json_encode($content);
exit();
然后ajax里
var response = eval("{"+xmlHttpRequest.responseText+"}");
xxx.innerHTML = response.html;
eval(response.js);