【问题标题】:Pass PHP array from Javascript从 Javascript 传递 PHP 数组
【发布时间】:2017-11-22 08:31:53
【问题描述】:

我想从 JavaScript 传递一个 PHP 数组。

PHP 数据表

---------------------------
| adminID |  adminEmail   |
===========================
|    1    | abc@gmail.com |
|    2    | xyz@ymail.com |
===========================

Javascript

<script>
    function checkuser_callback_function($el, value, callback) {
    var $array = new Array("xyz@gmail.com","abc@ymail.com");
    var valid = false;
    if($array.indexOf(value) == -1){
        valid = true;
    }
    callback({
        value: value,
        valid: valid,
        message: "User present."
    });
}
</script>

我想通过adminEmail这里var $array = new Array("..","..");

我在php中尝试了很多,但我没有得到任何结果。

<?php
    include 'config.php';
    $sql ="SELECT adminEmail FROM BEadmin";
    $result = mysqli_query($con,$sql);

    while($row = mysqli_fetch_assoc($result)) {
        $array = $row;
        $str = "'" . implode ( "', '" ,$array ) . "'";
        $parts = split("'", $str);
        print_r($str);
    }
?>

【问题讨论】:

  • 使用JSON在javascript和PHP之间传递
  • 我不熟悉 Javascript 或 ajax。我是 javascript 新手。
  • 在 PHP json_encode($variable) 中返回结果。然后在Javascript中JSON.parse(result)接收返回的对象。
  • @Classified 你能创建那个脚本来回答吗?
  • 您是否已经设置了 AJAX 调用(如果有,返回的变量是什么)?

标签: javascript php arrays jqbootstrapvalidation


【解决方案1】:

您可以使用 php 创建 javascript 数组。然后稍后在脚本中使用相同的内容。请注意,为了区分,我调用了 javascript 数组 jArray 而不是 $array。仅在脚本中解释了其余部分。希望这会有所帮助..

        <?php
        include 'config.php';
        $sql ="SELECT adminEmail FROM BEadmin";
        $result = mysqli_query($con,$sql);

        //start script tag
        echo "<script>\n";
        // javascript array decalaration beginning
        echo "var jArray = new Array(";

        $arrStr = "";
        while($row = mysqli_fetch_assoc($result)) {
        //                $array = $row;
        //                $str = "'" . implode ( "', '" ,$array ) . "'";
        //                $parts = split("'", $str);
        //                print_r($str);
            $arrStr .= '"'. $row["adminEmail"] . '",';
        }

        // drop the last , from the string
        $arrStr = substr($arrStr,0,-1);
        // now populate javascript array with this string
        echo $arrStr;

        // end javascript array
        echo ");\n";
        echo "</script>\n";
    ?>  

【讨论】:

  • 这太棒了...为我工作,但我有一些变化。请参阅下面的答案。
【解决方案2】:
<?php

    include 'ePHP/config.php';
    $sql ="SELECT adminEmail FROM BEadmin";
    $result = mysqli_query($con,$sql);



    $arrStr = "";
    while($row = mysqli_fetch_assoc($result)) {
    //                $array = $row;
    //                $str = "'" . implode ( "', '" ,$array ) . "'";
    //                $parts = split("'", $str);
    //                print_r($str);
        $arrStr .= '"'. $row["adminEmail"] . '",';
    }

    // drop the last , from the string
    $arrStr = substr($arrStr,0,-1);
    // now populate javascript array with this string


?>
<script>
    function checkuser_callback_function($el, value, callback) {
    var $array = Array(<?php echo $arrStr; ?>);
    var valid = false;
    if($array.indexOf(value) == -1){
        valid = true;
    }
    callback({
        value: value,
        valid: valid,
        message: "User present."
    });
}
</script>

【讨论】:

    猜你喜欢
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2021-04-16
    • 2013-02-28
    相关资源
    最近更新 更多