2013-12-18 99 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。