2013-12-18 4 views
6

हाय मैंने PHP में एक सरणी बनाई है। और मुझे उस सरणी को जावास्क्रिप्ट फ़ंक्शन में प्राप्त करने की आवश्यकता है। मैंने यही कोशिश की है।जावास्क्रिप्ट को PHP सरणी भेजना

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

और यह मेरा जावास्क्रिप्ट कोड है।

$(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> 
+0

क्या यह जावास्क्रिप्ट कोड PHP फ़ाइल के अंदर है? –

+1

मुझे विश्वास नहीं है कि 'echo json_encode ($ ValidatinArray);' नंगे '
' में परिणाम। क्या वहां पर जाने पर कोई प्रसंस्करण है? – Wrikken

+1

@Wrikken - वह '
' अपने कोड को हाइलाइट करने के लिए @ thefourtheye के संपादन के बाद दिखाई दिया, मुझे लगता है कि यह SO के WYSIWYG –

उत्तर

-1

PHP में इस तरह सरणी json_encode:

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

और जावास्क्रिप्ट में:

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

जावास्क्रिप्ट में 'eval() 'अनुशंसित नहीं है JSON डेटा को पार्स करना था! बेहतर तरीके से देखें [जावास्क्रिप्ट में JSON कैसे पार्स करें] (http://stackoverflow.com/a/4935684/2594742)। – AeroX

0

समस्या यह है कि चर में $ValidatinArray फ़ाइल में उपलब्ध नहीं है, जो जावस्कर प्रिंट करता है आईपीटी कोड। हो सकता है कि इस मैनुअल पेज में सहायक है:

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

0

आपका टैग फार्म का है कि आप सबमिट कर रहे हैं से आ रही है। आउटपुट सत्यापित करने के लिए इसे एन्कोड करने से पहले जांचें कि आपका फॉर्म डेटा क्या है। आप console.log ($ ("फॉर्म) का उपयोग कर सकते हैं;

फॉर्म का उपयोग करना भी एक अच्छा विचार नहीं है क्योंकि आपके पास एक से अधिक रूप हैं और फ़ॉर्म वैश्विक नाम है। फ़ॉर्म के लिए आपको इसे एक अनूठा रूप देना चाहिए ताकि आप उस विशिष्ट रूप से लक्षित कर सकते "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 का उपयोग करके जेएस को गूंजता है।

संबंधित मुद्दे