2013-12-18 25 views
6

Merhaba PHP'de bir dizi oluşturdum. Ve bu diziyi javascript işlevine almam gerekiyor. Denediğim şey bu.PHP dizini Javascript'e gönderme

$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++; 
} 

Ve bu benim javascript kodum.

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

Ama bu bana bu

SyntaxError: syntax error 
var P= <br /> 

gibi bir hata verir bu şekilde diziyi almak mümkün değil. Lütfen birisi bana yardım etsin.

GÜNCELLEME:

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

ve javascript: Bu php olarak

<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

Bu bir PHP dosyasının içindeki JavaScript kodu mu? –

+1

Ben 'echo json_encode ($ ValidatinArray); 'bir çıplak'
'sonuçta inanıyorum. Orada devam eden herhangi bir işlem var mı? – Wrikken

+1

@Wrikken - @ thefourtheye adlı kullanıcının kodunun ismini vurgulamak için kullanildiktan sonra göründüğünü bildirdim, bunu SO'nun WYSIWYG –

cevap

-1

böyle diziyi json_encode benim hata mesajının koymak dışarı kesindir

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

'eval()' JavaScript'in JSON veri ayrıştırmak için önerilen değil! Daha iyi bir yol için [JavaScript'te JSON nasıl ayrıştırılır] bölümüne bakın (http://stackoverflow.com/a/4935684/2594742). – AeroX

0

Kişisel etiketi, gönderiyorsunuz formundan geliyor. Çıktıyı doğrulamak için form verilerinin kodlamasını yapmadan önce ne olduğunu kontrol edin. console.log ($ ("form));

Ayrıca, birden fazla formunuz ve formunuz genel bir adınız varsa, formu kullanmak da iyi bir fikir değildir. Bu belirli bir form hedefleyebilmek "MyForm" gibi isim

Umut bu geç cevap için ... gibi document.ready yeniden deneyin

0

Maalesef yardımcı olur:.

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

bu deneyin :

<?php 


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

?> 

Yaptığınız şey sadece php kullanarak js'yi yankılamaktır.

İlgili konular