繁体   English   中英

从javascript执行PHP代码

[英]Executing PHP code from javascript

我正在开发一个包含下拉选择按钮的php页面。 在更改其值时,我正在调用javascript方法并传递下拉菜单中选择的值。 现在,我想使用传递的值来使用PHP从MySql获取更多详细信息。 如何使用JavaScript编写PHP代码? 我是PHP的初学者。 向我建议一种最简单的方法

对于下拉的onchange事件,您可以使用ajax调用php页面并传递您的参数并获取输出。

前端客户端脚本(Javascript)无法直接“调用”或运行PHP代码。 这是由于网页的客户端(浏览器)和服务器端(服务器)组件之间的分隔。 当您向服务器发出正常请求以返回页面(例如index.html)时,它将返回页面的内容并终止执行。

您试图实现的是一种称为AJAX的内容,该内容已在Wikipedia上进行了介绍 还有一个很好的基本示例,说明如何从Javascript运行PHP脚本。

从根本上讲,AJAX是网页服务器端组件的异步执行。 您可以使用ajax请求将页面“ test.php”定位为目标,这与在浏览器中打开页面时的目标几乎相同,并且页面的内容将被返回。

要获取其他内容,可以使用POST($ _POST)或GET($ _ GET)请求将详细信息发送回服务器。 通常,在执行搜索时,将使用GET。 如果要执行更新或创建,则应使用POST。

因此,您的页面URL可能类似于http://mywebsite.dev/ajax.php?select=apples (其中mywebsite.dev是开发URL)。 如果您有一张苹果类型表,则您的MySQL查询将是:

$type = $_GET['select'];
// Do some filtering on $type, eg. mysql_real_escape_string() and a few others
SELECT fruit.types FROM fruit WHERE fruit.main_type = '$type';

然后将格式化的JSON对象返回给浏览器:

$return = Array(
    0 => 'Pink Lady',
    1 => 'Sundowner',
    2 => 'Granny Smith',
    ...
);

$json = json_encode($return);

// expected result
{['Pink Lady'],['Sundowner'],['Granny Smith']};

您总是可以为数组(多维)提供额外的索引,也可以使用stdClass来提供更好的结构。

然后在Javascript中,使用for循环遍历json对象以构建新的选项列表。

var output = '';
for (var i = 0, k = json.length; i < k; i++) {
    output += '<option value="' + json[i] + '">' + json[i] + '</option>';
}

希望能有所帮助。

嗨,您需要使用ajax。 尝试:

index.php代码:该脚本将从使用jquery的数据中获取数据,并通过ajax将其发布到search.php文件中

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            $('#userid').change(function(){
                userid=this.value;
                $.ajax({
                    url:'search.php',
                    data : 'userid='+userid,
                    type:'POST',
                    success:function(result){
                        $('#result_div').html(result);
                    }
                });
            });
        });
    </script>
</head>
<body>
    <form name='getUserData' id='getUserData' action='#' method='GET'>
        Select User : <select id='userid' name='userid'>
            <option value='1'>Lokendra</option>
            <option value='2'>Amit</option>
            <option value='3'>Nitin</option>
            <option value='4'>Rishabh</option>
        </select>

    </form>
    <div id='result_div'></div>

</body>
</html>

search.php代码:此文件将包含您的业务逻辑。 并将值返回给ajax成功方法。 您可以在任何容器中填充重新运行结果。

<?php
        $userArray=array(
                    1   =>  'Lokendra',
                    2   =>  'Amit',
                    3   =>  'Nitin',
                    4   =>  'Rishabh',
                );
        $postedData=$_REQUEST;
        // Fire your select query here and diplay data 

        if(isset($postedData['userid'])){
            echo "Selected User name =>".$userArray[$postedData['userid']];die;
        }
    ?>

如果可以帮助您,请不要忘记接受答案。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM