2013-12-18 27 views
6

Witam Stworzyłem tablicę w PHP. I potrzebuję wprowadzić tę tablicę do funkcji javascript. Oto, co próbowałem.Wysyłanie tablicy PHP do 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++; 
} 

I to jest mój kod javascript.

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

Ale to daje mi błąd jak ten

SyntaxError: syntax error 
var P= <br /> 

Czy to nie jest możliwe, aby uzyskać tablicę w ten sposób. Proszę, pomóż mi.

UPDATE: To jest ostatni out put mojego błędzie

<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

Czy ten kod JavaScript znajduje się wewnątrz pliku PHP? –

+1

Nie wierzę, że 'echo json_encode ($ ValidatinArray);' daje w wyniku "
". Czy jest tam jakieś przetwarzanie? – Wrikken

+1

@Wrikken - że '
' pojawił się po edycji @fromTeye w celu podświetlenia jego kodu, zakładam, że pochodzi on z WYSIWYG WYSIWYG –

Odpowiedz

-1

w PHP json_encode tablicy tak:

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

iw javascript:

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

'eval()' w JavaScript nie jest zalecany do parsowania danych JSON! Zobacz [Jak analizować JSON w JavaScript] (http://stackoverflow.com/a/4935684/2594742) dla lepszego sposobu. – AeroX

0

Twój tag pochodzi od postaci, które przesyłasz. sprawdź, jakie są twoje dane formularza, zanim je zakodujesz, aby zweryfikować dane wyjściowe. możesz użyć konsoli.log ($ ("formularz));

Również użycie formularza nie jest dobrym pomysłem, ponieważ jeśli masz więcej niż jeden formularz i formularz jest nazwą globalną, dla formularzy powinieneś nadać mu unikalny formularz jak nazwać „myForm” tak, że można kierować tę specyficzną formę

Nadzieja to pomaga

0

Przepraszamy za opóźnienie w odpowiedzi ... Spróbuj przepisywania document.ready jak:.

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

Wypróbuj :

<?php 


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

?> 

To, co robisz, to po prostu echo js używając php.

Powiązane problemy