PDA

View Full Version : [AJAX&PHP]Cần mọi người giúp !



concocnho
21-09-2007, 14:06
Tôi đang làm 1 Shop bán hàng ,sài AJAX chạy trên máy ở nhà (window) thì ok , chạy trên host thật (LINUX) thì nảy sinh hàng ngàn vấn đề khó hiểu ,nhiều phần ko chạy, đặc biệt là sài trên IE thì ok , sài trên FF thì ko được .ai có kinh nghiệm giúp mình với.

Nhân Tâm
21-09-2007, 15:32
Bạn post các function đó lên đi. Có thể ActiveXObject không nhận ra version của FF.

lnt
21-09-2007, 18:22
Có rất nhiều sự khác biệt khi chạy ajax và dom trên IE và Mozila. Cần phải có code cụ thể mới phát hiện được.

Thí dụ: Tên hàm onReadyStateChange chỉ dùng trên IE trong khi onreadystatechange dùng được trên cả hai.

zhiivn
21-09-2007, 20:45
Có thể bị lỗi do bạn code mà chỉ test trên IE. (IE xài ActiveXObject, FF sử dụng XMLHttpRequest...)

Thử viết một lệnh đơn giản để xem các lệnh AJAX của bạn có hoạt động đúng không. Nếu được thì đưa code cho mọi người tham khảo.

concocnho
22-09-2007, 11:07
vấn đề AJAX thì biết nguyên nhân rồi các bạn ạ :
httplv1.open('GET',url,true);
document.getElementById('loading').style.display = 'block';
httplv1.onreadystatechange = handleResponselv1;
httplv1.send(); <-- trên IE thì ok , trên FF phải là httplv1.send(null);

xin mọi người bỏ chút thời gian xem giúp tôi vài đoạn code này cái ,vì sao nó chỉ chạy được trên window mà ko chạy được trên linux


<?php

/************************************************** *************************
* includes/page_poll.php
* -------------------

************************************************** *************************/
include("../common.php");

$resultpoll = new XiTemplate('../templates/resultpoll.tpl');
$polls = new XiTemplate('../templates/poll.tpl');

$resultpoll->assign('L_VOTE',$lang['l_vote']);
$polls->assign('L_VOTE',$lang['l_vote']);

$votebt = isset($HTTP_POST_VARS['Submit'])?$HTTP_POST_VARS['Submit']:false;
$pollid = isset($HTTP_POST_VARS['pollid'])?intval($HTTP_POST_VARS['pollid']):false;
$voteid = isset($HTTP_POST_VARS['voteid'])?intval($HTTP_POST_VARS['voteid']):false;
if($votebt==false||$voteid==false)
{
if(!$id)
{
Viewpoll();
}
else
{
Viewvoteresult($id);
}
}
else
{
vote($voteid);
Viewvoteresult($pollid);
}

function vote($vid)
{
global $db;
$sql = "UPDATE pollselect SET Vote_Total=Vote_Total+1 WHERE Vote_ID=".intval($vid);
$db->Query($sql);
}

function showvote()
{
global $db,$polls,$lang;
$polls->assign('POLL_BUTTON',$lang['l_btvote']);
$polls->assign('POLL_SUBJECT',$lang['l_poll_subject']);

$sql = "SELECT Vote_ID, Vote_Answer, p.Poll_ID, Poll_Question, Poll_Order
FROM pollselect ps, poll p
WHERE ps.Poll_ID = p.Poll_ID
AND Poll_Order = (
SELECT MIN( Poll_Order )
FROM Poll ) ";
$db->Query($sql);
$options = array();
while($row = $db->fetch_rows())
{
$options[] = $row;
}
$db->free_result();
$totaloption = count($options);

$polls->assign('POLL_TITLE',$options[0]['Poll_Question']);

for($i = 0;$i<$totaloption ;$i++)
{
$polls->assign('VOTE',$options[$i]);
$polls->parse('VOTING.OPTIONPOLL');
}
$polls->parse('VOTING');
$polls->out('VOTING');
}

function Viewpoll()
{
global $db,$polls,$lang;
$polls->assign('L_POLL_HAVING',$lang['l_poll_having']);
$polls->assign('L_POLL_DETAIL',$lang['l_poll_detail']);

$sql = "SELECT p.Poll_ID, Poll_Question, Poll_DateTime, Poll_Order, SUM( Vote_Total ) AS totalvote
FROM poll p LEFT JOIN pollselect ps ON p.Poll_ID = ps.Poll_ID
GROUP BY P.Poll_ID, Poll_Question, Poll_DateTime, Poll_Order
ORDER BY Poll_Order";
$db->Query($sql);
while($row = $db->fetch_rows())
{
$polls->assign('POLL',$row);
$polls->parse('POLL.POLLROWS',$row);

}
$db->free_result();
$polls->parse('POLL');
$polls->out('POLL');

}
function Viewvoteresult($pid=1)
{
global $db,$resultpoll,$lang;
$resultpoll->assign('L_VOTE_RESULT',$lang['l_poll_result']);
$sql = "SELECT Poll_Question, p.Poll_ID,Vote_Total, Vote_ID, Vote_Answer
FROM pollselect ps, poll p
WHERE p.Poll_ID = ps.Poll_ID and p.Poll_ID=".$pid;
$db->Query($sql);
$poll = array();
while($row = $db->fetch_rows())
{
$poll[] = $row;
$totalvote += $row['Vote_Total']; //TONG SO PHIEU HIEN CO

}
$db->free_result();
$totaloption = count($poll); //TONG SO TUY CHON
//
//BUILD POLL
//

$resultpoll->assign('L_TOTALROW',$lang['l_total_vote']);
$resultpoll->assign('TOTAL_VOTE',$totalvote);
$resultpoll->assign('Poll_Question',$poll[0]['Poll_Question']);
if($totaloption>0)
{
for($i = 0;$i<$totaloption;$i++)
{
$percent = @round($poll[$i]['Vote_Total']/$totalvote*100,1);
$resultpoll->assign('Vote_Answer',$poll[$i]['Vote_Answer']);
$resultpoll->assign('Vote_Total',$poll[$i]['Vote_Total']);
$resultpoll->assign('VOTE_PERCENT',$percent);
if($percent!=0)
$resultpoll->parse('RESULTPOLL.ROWPOLL.RESULTPOLL_IMAGE');
else
$resultpoll->parse('RESULTPOLL.ROWPOLL.RESULTPOLL_NOVOTE');
$resultpoll->parse('RESULTPOLL.ROWPOLL');
}
$resultpoll->parse('RESULTPOLL');
$resultpoll->out('RESULTPOLL');
}
}

?>

và thằng này nó cũng kiên quyết ko chạy trên host linux

<?php

/************************************************** *************************
* includes/page_voting.php
* -------------------
*
************************************************** *************************/

$xitemplate->assign('POLL_BUTTON',$lang['l_btvote']);
$xitemplate->assign('POLL_SUBJECT',$lang['l_poll_subject'] );
$sql = "SELECT Vote_ID, Vote_Answer, p.Poll_ID, Poll_Question, Poll_Order
FROM pollselect ps, poll p
WHERE ps.Poll_ID = p.Poll_ID
AND Poll_Order = (
SELECT MIN( Poll_Order )
FROM Poll ) ";
$db->Query($sql);
$options = array();
while($row = $db->fetch_rows())
{
$options[] = $row;
}
$db->free_result();
$totaloption = count($options);

$xitemplate->assign('POLL_TITLE',$options[0]['Poll_Question']);

for($i = 0;$i<$totaloption ;$i++)
{
$xitemplate->assign('VOTE',$options[$i]);
$xitemplate->parse('BODY.VOTING.OPTIONPOLL');
}
$xitemplate->parse('BODY.VOTING');
?>

thằng này thì chỉ chạy trên IE còn FF thì nó ko chạy , xin mọi người giúp với


<!-- BEGIN: RESULT_QUICK_SEARCH -->
<table width="500" border="0" cellpadding="5" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td height="40" colspan="5" valign="top"><a href="index.php" class="txt_grey">{L_HOME}</a> &gt;&gt; {L_RESULT_SEARCH}</td>
</tr>
<tr>
<td height="30" colspan="2" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
<td width="223">&nbsp;</td>
<td width="144" valign="top"><a href="index.php"></a></td>
<td width="86" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
</tr>

<tr bgcolor="#336699">
<td width="177" height="29" align="center" valign="middle" class="shopcartmenu">{L_PRODUCT_PICTURE}</td>
<td colspan="2" align="center" valign="middle" class="shopcartmenu">{L_PRODUCT_INFORMATION}</td>
<td align="center" valign="middle" class="shopcartmenu">{L_PRICE}</td>
<td align="center" valign="middle"><!--DWLayoutEmptyCell-->&nbsp;</td>
</tr>

<form action="includes/process_cart.php" name="result_quick_search" method="post" enctype="application/x-www-form-urlencoded">
<input name="pid" type="hidden" value="" >
<input name="action" type="hidden" value="" >
<tr>
<td height="120" colspan="5" valign="top">
<!-- BEGIN: ROWSPRODUCT -->
<table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>
<td width="111" rowspan="4" align="center" valign="middle">
<img src="{PRODUCT.Picture}" /></td>
<td width="262" height="20" valign="middle" class="txt_productname">{PRODUCT.ProductName}</td>
<td width="104" rowspan="4" align="center" valign="top">
<!-- BEGIN: OLDPRICE -->
<span class="text_oldprice">${PRODUCT.UnitPrice}</span>
<!-- END: OLDPRICE -->
&nbsp;
<!-- BEGIN: NEWPRICE -->
<span class="text_newprice">${PRODUCT.UnitPriceNew}</span>
<!-- END: NEWPRICE -->
<!-- BEGIN: CURRENT_PRICE -->

<span class="txt_grey">${PRODUCT.UnitPrice}</span>
<!-- END: CURRENT_PRICE -->
</td>
<td width="121" rowspan="4" align="center" valign="middle"> <input type="image" src="images/add_to_cart.gif" width="70" height="17" border="0" onclick="addcart_default(document.result_quick_search,{PROD UCT.ProductID});" /> </td>
</tr>

<tr>
<td height="38" valign="middle">{L_EXPIRYDATE} : {PRODUCT.ExpiryDate} {L_MONTH}</td>
</tr>
<tr>
<td height="20" valign="middle">{L_CATEGORY} {PRODUCT.CategoryName} </td>
</tr>
<tr>
<td height="20" valign="middle">{L_MANUFACTURER} : {PRODUCT.manufacturer} </td>
</tr>


<tr>
<td height="10" colspan="4" valign="top"><img src="images/line.gif" width="500" height="3" /></td>
</tr>
</table>
<!-- END: ROWSPRODUCT -->

</td>
</tr>
<tr>
<td colspan="5" height="25" align="center" valign="middle">{L_PAGE}
<label>
<select name="select_page" id="select_page" onchange="jum_page('#action=new_product&view=10&page=',this);">
<!-- BEGIN: SELECT_PAGE_TOP -->
<option style="text-align:center" value="{PAGE}">{PAGE}</option>
<!-- END: SELECT_PAGE_TOP -->
<!-- BEGIN: SELECTED_PAGE_TOP -->
<option style="text-align:center" value="{PAGE}" selected="selected">{PAGE}</option>
<!-- END: SELECTED_PAGE_TOP -->
</select>
| <span><a href="#view=10" class="txt_grey" onclick="viewtop('includes/page_newproduct.php?view=10');">{L_VIEW_TOP}</a></span> | {L_VIEW_ALL} </label></td>
</tr>

</form>



</table>
<!-- END: RESULT_QUICK_SEARCH -->

<!-- BEGIN: NO_RESULT_QUICK_SEARCH -->
<table width="490" border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td height="40" valign="top"><a href="index.php" class="txt_grey">{L_HOME}</a> &gt;&gt; {L_RESULT_SEARCH}</td>
</tr>
<tr>
<td width="490" height="25" align="center" valign="middle" bgcolor="#336699" class="shopcartmenu">CH&Uacute; &Yacute;</td>
</tr>
<tr>
<td height="65" align="center" valign="middle" class="txt_grey">{L_NO_RESULT_SEARCH}</td>
</tr>
</table>
<!-- END: NO_RESULT_QUICK_SEARCH -->

<!-- BEGIN: TIME_OUT -->
<table width="490" border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td height="40" valign="top"><a href="index.php" class="txt_grey">{L_HOME}</a> &gt;&gt; {L_RESULT_SEARCH}</td>
</tr>
<tr>
<td width="490" height="25" align="center" valign="middle" bgcolor="#336699" class="shopcartmenu">CH&Uacute; &Yacute;</td>
</tr>
<tr>
<td height="65" align="center" valign="middle" class="txt_grey">{L_TIME_OUT_SEARCH}</td>
</tr>
</table>
<!-- END: TIME_OUT -->