2011-11-04 117 views
-4

我有一個javascript方法,它調用一個php方法來獲取數組「availabletags」中的一些數據。爲了證明如果函數甚至稱,我加JavaScript函數不叫

availableTags[0] = "Test"; 

當我把它放在我的服務器上嘗試一下,沒有任何事情發生。所以我認爲javascript函數沒有被調用。

<link rel="stylesheet" href="js/demos.css"> 
<script type="text/javascript"> 
$(function() { 
     var availableTags = new Array(400); 
     availableTags[0] = "Test"; 
     availableTags = JSON.parse(<?php echo '"'.addslashes(include("/php/search_new.php")).'"'; ?>); 
     for(var i=0;i<availableTags.length;i++){ 
      alert("<b>availableTags["+i+"] is </b>=>"+availableTags[i]+"<br>"); 
      } 
    } 
</script> 

</head> 

<body> 
     <input id="searchrecipes" type="text" name="searchrecipes" class="searchinput" style="margin-left: 850px; margin-top: 0px; width:170px; background: #fff url(images/search_icon.png) no-repeat 100%;" placeholder="Suchen..."></input> 
     <input type="submit" name="buttonsenden" style="display:none;" value="" width: 5px></input> 



</body> 
</html> 

有誰知道我的錯誤?

+0

你不能從JavaScript調用PHP的方法。會發生什麼是PHP首先被執行,其結果被插入到HTML/JavaScript代碼中,然後被瀏覽器解釋。查看創建的HTML,您最可能在生成的JavaScript中出現語法或其他錯誤。 –

+0

是你的問題「有些PHP不會生成我期望的HTML/JS」或者「瀏覽器不按我期望的方式處理某些HTML/JS」?找出並告訴我們相關的位(即所有的PHP,你得到的輸出,以及它與你所期望的或PHP的輸出(沒有PHP)的不同之處的解釋,以及如何解釋瀏覽器不會以您期望的方式做出反應)。不要向我們展示一些PHP(尤其是丟失一些!),然後告訴我們瀏覽器不能正確處理它。 – Quentin

+0

看來你必須用你真正想做的事來澄清你的問題。併發布代碼瀏覽器越來越,而不是你的PHP代碼... –

回答

0

學習和使用AJAX來改變你的JavaScript陣列無需刷新頁面: AJAX調用看起來像:

<script type='text/javascript'> 
function yourFunction(str, typ) 
    { 
     if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     {// code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange=function() 
     { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
       myArray = xmlhttp.responseText; //here is the result 
      } 
     } 
     xmlhttp.open("GET","myFile.php?param1="+str ,true); //here you lunch myFile 
     xmlhttp.send(); 
    } 
</script>