2017-04-25 89 views
-1

我有一個頁面,我添加一個問題,這個頁面有兩個選擇標籤,一個是顯示類型,另一個是章節。如何在PHP中調用ajax函數?

現在,當第一次添加問題時,用戶將選擇一個類型,然後章節將通過ajax函數加載,並將顯示在選擇標籤中。

現在,當用戶提交表單時,我將該類型保存在一個會話中,以便下次用戶轉到該頁面時,默認情況下會選擇該類型。

現在只有我可以看到在選擇標記中選擇的類型,但是在章節中沒有標記,我想顯示章節,如果類型保存在會話中,爲此我需要調用ajax函數頁面加載並設置會話類型。

<?php 
<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>MCQ Questions</title> 
</head> 
<body> 

<?php 
session_start(); 
?> 

<form method="post" action="uploadQuestion.php" enctype="multipart/form-data"> 
    <p> Enter the question :</p> <input name="question" type="text"> <br><br> 


    <?php 
    if (isset($_SESSION['quetype'])) 
    { 
    $type = $_SESSION["quetype"]; ?> 


    Select Rank : 
    <select name="types" id="types" onchange="getValue(this)"> 

     <option value=""> Select Rank</option> 

     <option name="type" id="t1" value="1" <?=($type==1?"selected":"");?>> Apprentice </option> 

     <option name="type" id="t2" value="2" <?=($type==2?"selected":"");?>> Volume 1 CDC </option> 

     <option name="type" id="t3" value="3" <?=($type==3?"selected":"");?>> Volume 2 CDC Video</option> 

     <option name="type" id="t4" value="4" <?=($type==4?"selected":"");?>> Volume 3 CDC Video</option> 

     <option name="type" id="t5" value="5" <?=($type==5?"selected":"");?>> Volume 4 CDC Video</option> 

     <option name="type" id="t6" value="6" <?=($type==6?"selected":"");?>> Volume 5 CDC</option> 

     </select> <br><br> 

      <?php 
      } 
      else { 
       ?> 

       Select Rank : 
       <select name="types" id="types" onchange="getValue(this)"> 

       <option value=""> Select Rank</option> 

        <option name="type" id="t1" value="1"> Apprentice </option> 
        <option name="type" id="t2" value="2"> Volume 1 CDC </option> 
        <option name="type" id="t3" value="3"> Volume 2 CDC Video </option> 
        <option name="type" id="t4" value="4"> Volume 3 CDC Video </option> 
        <option name="type" id="t5" value="5"> Volume 4 CDC Video </option> 
        <option name="type" id="t6" value="6"> Volume 5 CDC </option> 

       </select> <br><br> 
       <?php 
      } 
    ?> 

    Select chapter : 
    <select name="chapters" id="chapters"> 

    <option value="">Select chapter</option> 


    </select> <br><br> 

    <p> Enter options :</p> 
    Enter option A : <input name="opt1" type="text"> <br><br> 
    Enter option B : <input name="opt2" type="text"> <br><br> 
    Enter option C : <input name="opt3" type="text"> <br><br> 
    Enter option D : <input name="opt4" type="text"> <br><br> 

    Select correct answer : 

    <select name="ans" id="type"> 
     <option value="">Select answer...</option> 
     <option value="A">A</option> 
     <option value="B">B</option> 
     <option value="C">C</option> 
     <option value="D">D</option> 
    </select> 

    <br><br> 

    <input type="submit" value = "Submit"> 


    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <script> 


    <?php 

      if(!empty($type)) 
      { 
       ?> 
    $(document).ready(function() { 
     getValue(<?php echo $type?>); 
    }); 
    <?php 

    } 


     ?> 


     function getValue(obj) { 
      var value = obj.value; 
      $.ajax({ 
       type: "POST", 
       url: 'edit.php', 
       data: { 
        "val" : value 
       }, 
       dataType: 'text', 
       async: false, 
       cache: false, 
       success: function (result) { 

        // alert(result); 

        $('#chapters').html(result); 
       } 
      }); 
     } 
    </script> 
</form> 
</body> 
</html> 

我試圖在document.ready事件中的腳本標記中調用該函數,但它不起作用。請幫忙,謝謝。

+1

我沒有看到你這些行後,關閉PHP標籤。 'getValue(<?php echo $ type?>); } <?php}'。你也沒有正確關閉'$(document).ready'。可能要加倍檢查您的代碼。它似乎已經有很多問題了。 – cosmoonot

+0

嘗試解決我提到的兩個問題。你是否遇到任何控制檯錯誤? – cosmoonot

+0

修復了兩個問題仍然無法正常工作。請檢查腳本標記中的編輯代碼。我沒有收到任何錯誤。@ cosmoonot – Sid

回答

0

請檢查此解決方案,它可能會幫助您解決您的目的。 此代碼不會在這裏運行,因爲這包括php代碼。請嘗試在您的服務器上運行。

感謝

jQuery(document).ready(function(){ 
 
     jQuery('#types').change(function(){ 
 
      var value = jQuery(this).val(); 
 
      getValue(value); 
 
     }); 
 
     console.log(<?php echo $type; ?>); 
 
     if(<?php echo !empty($type) ?>) 
 
     { 
 
      getValue('<?php echo $type?>'); 
 
      function getValue(obj){ 
 
       var value = obj.value; 
 
       jQuery.ajax({ 
 
        type: "POST", 
 
        url: 'edit.php', 
 
        data: { 
 
         "val" : value 
 
        }, 
 
        dataType: 'text', 
 
        async: false, 
 
        cache: false, 
 
        success: function (result) { 
 

 
         // alert(result); 
 

 
         jQuery('#chapters').html(result); 
 
        } 
 
       }); 
 
      } 
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!doctype html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <title>MCQ Questions</title> 
 
</head> 
 
<body> 
 
<?php 
 
    session_start(); 
 
?> 
 
<form method="post" action="uploadQuestion.php" enctype="multipart/form-data"> 
 
    <p> Enter the question :</p> <input name="question" type="text"> <br><br> 
 
    <?php 
 
    if (isset($_SESSION['quetype'])) 
 
    { 
 
     echo $type = $_SESSION["quetype"]; ?> 
 
     Select Rank : 
 
     <select name="types" id="types"> 
 
      <option value=""> Select Rank</option> 
 
      <option name="type" id="t1" value="1" <?=($type==1?"selected":"");?>> Apprentice </option> 
 
      <option name="type" id="t2" value="2" <?=($type==2?"selected":"");?>> Volume 1 CDC </option> 
 
      <option name="type" id="t3" value="3" <?=($type==3?"selected":"");?>> Volume 2 CDC Video</option> 
 
      <option name="type" id="t4" value="4" <?=($type==4?"selected":"");?>> Volume 3 CDC Video</option> 
 
      <option name="type" id="t5" value="5" <?=($type==5?"selected":"");?>> Volume 4 CDC Video</option> 
 
      <option name="type" id="t6" value="6" <?=($type==6?"selected":"");?>> Volume 5 CDC</option> 
 
     </select> <br><br> 
 
    <?php 
 
    } 
 
    else { 
 
    ?> 
 

 
     Select Rank : 
 
     <select name="types" id="types" onchange="getValue(this)"> 
 
     <option value=""> Select Rank</option> 
 
      <option name="type" id="t1" value="1"> Apprentice </option> 
 
      <option name="type" id="t2" value="2"> Volume 1 CDC </option> 
 
      <option name="type" id="t3" value="3"> Volume 2 CDC Video </option> 
 
      <option name="type" id="t4" value="4"> Volume 3 CDC Video </option> 
 
      <option name="type" id="t5" value="5"> Volume 4 CDC Video </option> 
 
      <option name="type" id="t6" value="6"> Volume 5 CDC </option> 
 
     </select> <br><br> 
 
    <?php 
 
    } 
 
    ?> 
 
    Select chapter : 
 
    <select name="chapters" id="chapters"> 
 
     <option value="">Select chapter</option> 
 
    </select> <br><br> 
 
    <p> Enter options :</p> 
 
    Enter option A : <input name="opt1" type="text"> <br><br> 
 
    Enter option B : <input name="opt2" type="text"> <br><br> 
 
    Enter option C : <input name="opt3" type="text"> <br><br> 
 
    Enter option D : <input name="opt4" type="text"> <br><br> 
 
    Select correct answer : 
 
    <select name="ans" id="type"> 
 
     <option value="">Select answer...</option> 
 
     <option value="A">A</option> 
 
     <option value="B">B</option> 
 
     <option value="C">C</option> 
 
     <option value="D">D</option> 
 
    </select> 
 
    <br><br> 
 
    <input type="submit" value = "Submit"> 
 
    
 
</form> 
 
</body> 
 
</html>

+0

你在這做過什麼?你能解釋一下嗎? – Sid

+0

所以你得到$ type的值。我使用文檔就緒函數,並在裏面,我檢查$類型是否爲空,然後調用函數爲ajax調用 –

+0

我不只是想調用一次函數,當我有類型的值,它會被調用從選擇標籤的類型更改選項 – Sid