2014-11-03 93 views
0

我有一個腳本插入到Magento中,它似乎沒有正常工作。每當它運行時,它實際上將html文檔的內容送回到文本框中而不是自動提示。誰能告訴我這個問題似乎是什麼?我認爲這可能是兩種功能衝突,有沒有一種很好的方法來清理它?如何更好地清理此代碼?

<script type="text/javascript" src="jquery-2.1.1.js"></script> 
<script type="text/javascript" src="jquery.autocomplete.js"></script> 

<script type="text/javascript" > 
//<![CDATA[ 
$j = jQuery.noConflict(); 

$j(document).ready(function(){ 
     $j("#antique_toys_materials").keyup 
     (function() 
      { 
       var tag= $j(this).val(); 
       if(tag!='') 
       { 
        $j.ajax(
        { 
         type: "GET", 
         url: "autocomplete.php", 
         data: "q=" + tag, 
         cache: true, 
         success: function(result) 
         { 
          $j("#antique_toys_materials").val(result); 
         } 
        } 
        ); 
       } 
       return false; 
      } 
     ); 
     } 
    ); 
     //]]> 
</script> 


<script type="text/javascript" > 
//<![CDATA[ 
    $j = jQuery.noConflict(); 
     $j(window).load(function(){ 

function calculate() 
{ 
    var values = [ 
     $j("#cost").val(), 
     $j("#shipping_paid").val(), 
     $j("#tax_paid").val() 
    ]; 

    var percent_value = $j("#our_markup").val(); 
//---------------------------// 
    if (percent_value == 285) 
    { 
    var percent_value = 0; 
    } 


    var sub_total = eval(values.join('+')); 
    var total = eval("sub_total+(sub_total * percent_value)"); 

    var shortened_total = total.toFixed(2); 

    $j("#price").val(shortened_total); 
} 


$j(document).ready(function() { 
$j(document).on('input', 'input', calculate); 
$j(document).on('change', 'select,input', calculate); 
}); 


}); 
    //]]> 
</script> 

,並與鉤了這個

<?php 
$q=$_GET['q']; 
$my_data=mysql_real_escape_string($q); 
$mysqli=mysqli_connect('localhost','XXXXXXX','XXXXXXX','XXXXXXX') or die("Database Error"); 
$sql = "SELECT DISTINCT auto_complete_suggestions FROM auto_complete WHERE auto_complete_suggestions LIKE '%$my_data%' 
ORDER BY CASE WHEN auto_complete_suggestions = '$mydata' THEN 0 
       WHEN auto_complete_suggestions LIKE '$mydata%' THEN 1 
       WHEN auto_complete_suggestions LIKE '%$mydata%' THEN 2 
       WHEN auto_complete_suggestions LIKE '%$mydata' THEN 3 
       ELSE 4 
      END, auto_complete_suggestions LIMIT 0,1"; 
$result = mysqli_query($mysqli,$sql) or die(mysqli_error()); 

if($result) 
{ 
    while($row=mysqli_fetch_array($result)) 
     { 
     echo $row['auto_complete_suggestions']."\n"; 
     } 
} 
?> 

它工作正常,孤立而不noConflict但後來當我把它在Magento似乎需要一些幫助,我敢肯定,因爲它是反饋給它的HTML文件,有什麼不對。 想法?謝謝!

+0

如果你正在構建的東西將會被公開發布......請先了解更多關於開發Magento平臺的信息。目前這個代碼真的有很多錯誤... – 2014-11-03 17:27:56

+0

好的。感覺像幫助我學習?我能做得更好嗎? – new2programming 2014-11-03 17:50:34

+0

好吧,你應該在你自己的模塊中完成所有這些工作,你應該從你的模塊佈局文件中添加所有的JS,你應該嚴格地使用prototype而不是jquery,因爲這是Magento的核心JS框架,你應該使用Magento的方法訪問數據庫,絕對不要直接使用PHP方法或編寫原始SQL。 Magento是一個功能強大,功能強大的MVC框架,雖然它具有非常陡峭的學習曲線,但如果你對它有所瞭解,你將真正擁有寶貴的技能。 SO和SE都是學習它的好地方! – 2014-11-03 18:01:35

回答

0

這只是一個快速猜測,但嘗試使用單詞「jQuery」而不是「$」。因爲它也使用了「$」,所以我不得不更改一些干擾原型的插件腳本。一旦我用jQuery替換了$的所有實例,事情就開始按照我的預期工作。

+0

謝謝你的建議!其實已經嘗試過了。 – new2programming 2014-11-03 14:55:29