将PHP数组发送到Javascript

时间:2013-12-18 01:43:30

标签: javascript php

您好我已经在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 />

不可能以这种方式获得阵列。请有人帮助我。

更新:这是我的错误消息的最终输出

    <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>

5 个答案:

答案 0 :(得分:0)

问题是,文件中没有变量$ValidatinArray,它会输出javascript代码。也许这个手册页可以帮助您:

http://www.php.net/manual/en/language.variables.scope.php

答案 1 :(得分:0)

您的代码来自您提交的表单。在编码之前检查表单数据是什么,以验证输出。你可以使用console.log($(“form));

同样使用表单也不是一个好主意,因为如果你有多个表单而表单是全局名称。对于表单,您应该为其提供一个独特的表单名称,如“myForm”,以便您可以定位该特定表单。

希望这有帮助

答案 2 :(得分:0)

对于迟到的回复感到抱歉...尝试重写您的文档。已完成:

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

答案 3 :(得分: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。

答案 4 :(得分:-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);
    });
});