php
  • html
  • 2015-06-10 18 views 4 likes 
    4

    我有這個循環,回波數據庫的問題爲形式與在選擇選項預定的答案就像是,否,不知道。用戶可以回答任何數量的問題,但必須至少回答一個問題。我如何在提交表單時將問題和相應的選定答案反饋給用戶。我如何回波的問題,一個循環中選擇選項用PHP

    在這裏,我檢索dBase中的問題

    <form method="post" action=""> 
    <?php   
        $sql = 'SELECT starttime, country,league, home, away,gamecode 
        FROM games 
        WHERE starttime > DATE_FORMAT(NOW(),"%d/%m/%y %H:%i") 
        ORDER BY starttime' ; 
        $retval = mysql_query($sql); 
        if(! $retval) 
        { 
         die('Could not get games for the date selected: ' . mysql_error()); 
        } 
    
        while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
        { 
    

    在這裏,我回聲問題給用戶

    echo "{$row['country']} | {$row['league']} | Time:{$row['starttime']} <br> ". 
        "<div align='center'><span class='style3'>{$row['home']} VS ". 
         "{$row['away']} <br> ". 
    

    這裏,i回波預定可選答案爲每個上述問題

    的EDITED //我的頭形式上面是SQL查詢某處

     "<select name='gm" . $row['gamecode'] ."' > 
         <option value=''>Select option</option> 
        <option value='btsyes'>BTS (YES)</option> 
        <option value='btsno'>BTS (NO)</option> 
        <option value='over2.5'>Over2.5(Total Goals)</option> 
        <option value='under2.5'>Under 2.5(Total Goals)</option> 
        <option value='oddtg'>Odd(Total Goals)</option> 
        <option value='eventg'>Even(Total Goals)</option> 
        </select></span></div>". 
          "<hr>"; 
        } 
    
    ?> 
    
    
    
    <input type="submit" name="play" value="Register Bet" /> 
        </form></div> 
    

    上述所有工作正常,但在這裏,我想回應的問題,並選擇返回給用戶進行確認

    這個答案是我嘗試

    if (isset($_POST ['play'])){ 
    echo "Confirm Your Selection </br>"; 
    foreach ($_POST as $key => $value) { 
        if($value !=''){ 
    
         echo $key."-".$value; 
          echo "<br>"; 
        }else{ echo "No valid selection Made <br>";} 
        } 
    } 
    

    我現在使用的開發工具,在網絡標籤上,我不知道需要集中注意力。 這是我所得到的,如果用戶選擇了拳頭兩個選項確認您的選擇沒有有效的選擇製造 沒有有效的選擇製造 沒有有效的選擇製造 註冊投注

    +0

    我把你的選擇標記和測試它構建這種形式。它顯示正確。確保你的html是正確的。另外,你在瀏覽器上檢查開發者工具嗎?檢查請求主體,首先查看你發送的內容。讓我知道你的發現。 –

    +0

    謝謝。選擇標籤工作正常。它在下拉選擇選項菜單中顯示預期的問題和所有7個選項,但是這裏的問題是回覆用戶在提交表單時爲所有循環選擇的選項。 – scylla

    +0

    對不起,沒有得到的圖片。您能否請添加更多信息。所以你有一個有多個問題和答案的表單?或者頁面上的每個問題和多個表單都有一個表單?讓我知道這可能只是你的設計問題。 –

    回答

    2
    <select name= 'gm[]'> 
         <option value='so'>select option</option> 
    <option value='btsyes'>BTS (YES)</option> 
    <option value='btsno'>BTS (NO)</option> 
    <option value='over2.5'>Over2.5(Total Goals)</option> 
    <option value='under2.5'>Under 2.5(Total Goals)</option> 
    <option value='oddtg'>Odd(Total Goals)</option> 
    <option value='eventg'>Even(Total Goals)</option> 
    </select> 
    

    通過做GM []你說這個值是一個數組。與您可以在$ _ POST設置多個值[「克」]

    附加

    您的形式將默認,發送所有的選擇,如果沒有提供默認值,然後第一個值將被選中並轉移。爲了避免這種情況,只要做你做檢查的時候,如果value != ''

    <select name="gm"><option value=''>Choose your Answer</option></select> 
    

    如果用戶沒有選擇「」空字段將被通過,你可以跳過它。

    編輯#2的工作副本

    <form action="" method="POST"> 
    
    <select name='gm[firstQuestion]'> 
        <option value=''>Select Please</option> 
        <option value='Foo'>Foo</option> 
        <option value='Bar'>Bar</option> 
        <option value='Zoo'>Zoo</option> 
        <option vlaue='Park'>Park</option> 
    </select> 
    <br> 
    <select name='gm[secondQuestion]'> 
        <option value=''>Select Please</option> 
        <option value='Foo'>Foo</option> 
        <option value='Bar'>Bar</option> 
        <option value='Zoo'>Zoo</option> 
        <option vlaue='Park'>Park</option> 
    </select> 
    <br> 
    <select name='gm[thidQuestion]'> 
        <option value=''>Select Please</option> 
        <option value='Foo'>Foo</option> 
        <option value='Bar'>Bar</option> 
        <option value='Zoo'>Zoo</option> 
        <option vlaue='Park'>Park</option> 
    </select> 
    <br> 
    <input type="submit" value="answer"> 
    

    與此PHP代碼

    foreach($_POST['gm'] as $key => $answer){ 
        if($answer != ''){ 
         echo "your Question #" . $key . ' Answer is ' . $answer . PHP_EOL; 
        } 
    
    } 
    

    檢查輸出

    +0

    使用'gm []'所有選擇選項具有相同名稱'gm []'。第二個建議