09/10/2018, 23:44

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

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 viết 01:55 ngày 10/10/2018
Bạn post các function đó lên đi. Có thể ActiveXObject không nhận ra version của FF.
lnt viết 02:00 ngày 10/10/2018
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 viết 01:53 ngày 10/10/2018
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 viết 01:50 ngày 10/10/2018
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
Code:
<?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
Code:
<?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
Code:
<!-- 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,{PRODUCT.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 -->
Bài liên quan
0