簡體   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