2017-03-10 1 views
0

Ich habe eine PHP-assoziative Array $ php_array. Außerdem habe ich ein Formular wie unten in meiner PHP-Datei.Pass PHP-Array von Formular zu Javascript-Datei

<form action="" method="post"> 
    <p class="submit"> 
     <input name="submit" class="button-primary" value="Send" type="submit" id=""> 
     <input type="hidden" name="details" value="' . $php_array . '"/> 
    </p> 
</form> 

Ich möchte dieses Array $ php_array auf eine JavaScript-Datei zu übergeben, wie

`details = $("input[name=details]").val();` 

Das Array ist in Form

Array(
    [59] => Sree 
    [53] => Smith 
) 

ich die Namen angezeigt werden sollen als Drop-Down mit Javascript beim Klicken auf den Link 'Senden'. Wie kann ich das PHP-Array an Javascript

übergeben
+1

mit Rücken Sie benötigen Um Ihr Array in das Json-Format zu kodieren, dekodieren Sie dieses JSON von der Client-Seite und parsen Sie das dekodierte Array von Javascript; – hassan

Antwort

2

Sie sollten Ihre PHP-Array in JSON-Format kodieren, dann entschlüsseln sie von Client-Seite;

<form action="" method="post"> 
    <p class="submit"> 
     <input name="submit" class="button-primary" value="Send" type="submit" id=""> 
     <input type="hidden" name="details" value='<?php echo json_encode($php_array); ?>'/> 
    </p> 
</form> 

und von Ihrer JavaScript-Datei:

var details = JSON && JSON.parse($("input[name=details]").val()) || $.parseJSON($("input[name=details]").val()); 
+0

Ich habe den gleichen Code versucht, aber ich bekomme den folgenden Fehler. Uncaught SyntaxError: Unerwartetes Ende der JSON-Eingabe (...) – sree

+0

Dies bedeutet, dass Ihre JSON ungültig ist, überprüfen Sie die Gültigkeit der – hassan

+0

Im Erhalten der JSON-codierten Wert ashis in PHP-Datei. {"59": "Sree", "53 ":" Smith "}' bei der Übergabe der gleichen an js im bekommen diesen Fehler – sree

1

Es ist Ihr Endziel nicht klar, ist es über XHR (Ajax) veröffentlichen?

In diesem Fall denke ich, die Verwendung des Formulars, um die Daten zu übergeben, ist nicht erforderlich. Sie konnte es einfach zu json kodieren und es auf Sie greifen JS wie diese Datei oder blockieren:

<script type="text/javascript"> 
    var details = <?php print(json_encode($php_array)) ?>; 

    // using jQuery 
    $('form').on('submit', function(e) { 
    // use 'details' here as you need 
    return false; 
    }); 
</script> 
0

einfach codieren Ihre Variable in der Seite analysieren sie mit Hilfe von JavaScript json_encode($php_array) dann JSon JSON.parse()