簡體   English   中英

如何從另一個頁面獲得價值

[英]how to get value from another page

我應該做一個動態選擇框,其中醫生姓名的選擇取決於在另一個選擇框即專業中選擇的名字。

繼承人的HTML

    <select name="docSpec" id="docSpec" onChange="getSpecialty('getSpec.php?spec='+this.value)">

            <option>pick a specialization</option>
            <option value="General">General</option>
            <option value="pediatrics">pediatrics</option>
            <option value="Physician">Physician</option>
            <option value="Cardiologist">Cardiologist</option>
            <option value="Pulmonary">Pulmonary</option>

    </select>   




        <div id="getDoc"> <!-- the contents from getSpec.php are displayed in this div! -->
            <select>
                <option>select doctor</option>
            </select>
        </div>

仍然在同一文件中,這是我的JavaScript。

    function getXMLHTTP() { //fuction to return the xml http object
    var xmlhttp=false;  
    try{
        xmlhttp=new XMLHttpRequest();
    }
    catch(e)    {       
        try{            
            xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e){
            try{
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch(e1){
                xmlhttp=false;
            }
        }
    }

    return xmlhttp;
}



function getSpecialty(strURL) {     

    var req = getXMLHTTP();

    if (req) {

        req.onreadystatechange = function() {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {                        
                    document.getElementById('getDoc').innerHTML=req.responseText;                       
                } else {
                    alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                }
            }               
        }           
        req.open("GET", strURL, true);
        req.send(null);
    }

}

我有一個單獨的文件包含這個名為getSpec.php的請求

<?php $spec=$_REQUEST['spec']; // i converted javascript variable to php by passing it to url
    require_once('dbcon.php');
    $query="select doctorName from doctors where specialty= '$spec'"; // this is why i passed it with jquery
    $result=mysqli_query($conn,$query);
?>
<select name="doctor">
    <option>Select doctor</option>
    <?php 

        while( $row = mysqli_fetch_row($result)) { 

            echo "<option value='$row[0]'>$row[0]</option>"; // for contents of the dropdown

       } ?>

我通過此代碼傳遞了javascript變量並將其轉換為另一頁getSpec.php中的 php,但現在的問題是我無法從所選的<select name="docName>獲取值。有辦法可以得到嗎?

您的瀏覽器是什么? 您在處理DOM時不能依賴innerHtml。 它在每種瀏覽器上的工作方式都不同,IE與基於Webkit的瀏覽器對XMLHTTPRESPONSE的處理方式也不同。 我認為它是“完成”或“完成”而不是4。

您用jquery標記了問題,為什么不使用此庫解決問題。 $ .get和$ .ajax和$(“ some css selector”)。html('your new html')的成功處理程序是很好的工具。

編輯:我正在按要求添加更多詳細信息。
如您所要求的,您可以使用下面的代碼來獲取select和getDoc的innerHtml :(“#” id代表id,“ [sth =?]”代表屬性相等)

var old_get_doc_innerHtml = $('#getDoc').html();
var old_select_innerHtml = $('select[name="doctor"]').html();

專為您的getSpecialty(strURL)代碼使用:

function getSpecialty(strURL) {
    var jqxhr = $.get(strURL, function (data) {
        // runs only if http fetch has succeeded.
        $("#getDoc").html(data);
        alert("Load was performed.");
    })
    .done(function () {
        // another success implementation type
    })
    .fail(function () {
        // runs only if http fetch has failed.
    })
    .always(function () {
        // runs always both in fail and success.
    });
}

好的,簡短的代碼簡介:
$是jQuery的運算符,可以使用$.someFunction()使用靜態函數。 jQuery的元素選擇器使用“ CSS選擇器”字符串,語法為: $('CSS_SELECTOR')
通過使用它,您可以選擇頁面上的所有“標簽”標簽: $('label')或具有type ='text' $('input[type="text"]')或更多類型的'input'標簽。 請參閱API文檔選擇器頁面

使用css_selector選擇元素后,您可以運行特定於元素的函數,例如html() jQuery永遠不會返回void,而是返回元素Object,因此我們可以在變量/ DOM元素上使用每個操作函數,而無需使用';'。 我將這個概念用於jqxhr變量(內部:getSpecialty(strURL),jqxhr是方法$ .get的返回對象),在這里我稱為.done(...) .fail(...).always(...)jqxhr

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM