2013-12-18 152 views
6

您好我已經在PHP中創建了一個數組。我需要將該數組放入JavaScript函數中。這是我嘗試過的。發送PHP數組到Javascript

$GetTheValidationRule=mysqli_query($con,"SELECT * FROM Questions WHERE Form_ID='$FormID' AND QuestionsDataHave='YES' ORDER BY Questions_ID+0, Questions_ID"); 
$ValidatinArray=array(); 
$J=0; 
while($RowVal=mysqli_fetch_array($GetTheValidationRule)){ 
    $ValidatinArray[$J]= $RowVal['Validation_Type']; 
    $J++; 
} 

這是我的javascript代碼。

$(document).ready(function() { 
    $("form").submit(function(){ 
    var P= <?php echo json_encode($ValidatinArray); ?>; 
     var O=P.length; 
     alert(O); 
     return false; 
    }); 
}); 

但是這給了我這樣的

SyntaxError: syntax error 
var P= <br /> 

錯誤是不是有可能得到這樣的陣列。請有人幫助我。

UPDATE:這是最後了我的錯誤信息看跌

<script> 
$(document).ready(function() { 
$("form").submit(function(){ 
alert('AAAAAAAAAAAAAAAAAAA'); 
var IDsOfTheColumns=document.getElementsByName("DataColumnID[]"); 
var Data=document.getElementsByName("DataInputValue[]"); 
var A=IDsOfTheColumns.length; 
alert(A); 
<br /> 
    <b>Notice</b>: Undefined variable: ValidatinArray in <b>C:\xampp\htdocs\PHIS\CreateTheForm.php</b> on line <b>16</b><br /> 
     var P = null; return false; 

}); 
}); 


    </script> 
+0

這是一個PHP文件裏面的JavaScript代碼嗎? –

+1

我不相信'回聲json_encode($ ValidatinArray);'結果在裸'
'。以後有沒有進行任何處理? – Wrikken

+1

@Wrikken - that'
'出現在@ thefourtheye的編輯之後,以突出顯示他的代碼,我假設它來自SO的所見即所得 –

回答

-1

在PHP json_encode數組是這樣的:

$inlinejs=''; 
$inlinejs.='var validatinArray=\''.addslashes(json_encode($ValidatinArray)).'\';'."\n"; 
$inlinejs.='var validatinArray=eval(\'(\' + validatinArray + \')\');'."\n"; 

,並在javascript:

$(document).ready(function() { 
    $("form").submit(function(){ 
    <?php echo $inlinejs; ?> 
    console.log(validatinArray); 
    }); 
}); 
+0

JavaScript中的eval()不是推薦的解析JSON數據!請參閱[如何解析JavaScript中的JSON](http://stackoverflow.com/a/4935684/2594742)以獲得更好的方式。 – AeroX

0

您的代碼是從您所提交的表單來的。在編碼之前檢查你的表單數據是否爲驗證輸出。你可以使用console.log($(「form));

如果你有多個表單並且表單是一個全局名稱,名稱,比如「myForm的」,這樣您就可以指定特定形式

希望這有助於

0

對不起,我遲到響應...嘗試重寫你的document.ready爲:

$(document).ready(function() { 
    $("form").submit(function(){ 
    var P = JSON.parse('<?php echo json_encode($ValidatinArray); ?>'); 
     var O = P.length; 
     alert(O); 
     return false; 
    }); 
}); 
0

試試這個:

<?php 


    echo ' <script> 
      $(document).ready(function() { 
           $("form").submit(function(){ 
           var P= '. json_encode($ValidatinArray) . '; 
           var O=P.length; 
           alert(O); 
           return false; 
          }); 
        }); 
       </script>'; 

?> 

你所做的只是使用php回顯js。