2015-06-29 7 views
6

हाय मैं एक पृष्ठ एक निश्चित टूर्नामेंट के लिए एक उपयोगकर्ता परिणाम देख सकते हैं और दौरप्रस्तुत करने प्रपत्र

enter image description here

उपयोगकर्ता देता है कि उसके बाद टूर्नामेंट खेल चयन पर तो उपयोगकर्ता होगा आधारित से भर जाता है खेल का चयन होगा चुनिंदा दौर जो टूर्नामेंट चयन

जब सब किया जाता है उपयोगकर्ता प्रेस बटन जो टूर्नामेंट के आधार पर परिणाम के लिए परिणाम दिखेगा और दौर चयनित जमा के आधार पर से भर जाता है

एम y कोड महान काम कर रहा है:

mainPage.php

<script type="text/javascript"> 
$(document).ready(function() 
{ 
$(".sport").change(function() 
{ 
    var id=$(this).val(); 
    var dataString = 'id='+ id; 

    $.ajax 
    ({ 
    type: "POST", 
    url: "get_sport.php", 
    dataType : 'html', 
    data: dataString, 
    cache: false, 
    success: function(html) 
    { 
     $(".tournament").html(html); 
    } 
    }); 
    }); 


$(".tournament").change(function() 
{ 
    var id=$(this).val(); 
    var dataString = 'id='+ id; 

    $.ajax 
    ({ 
    type: "POST", 
    url: "get_round.php", 
    data: dataString, 
    cache: false, 
    success: function(html) 
    { 
    $(".round").html(html); 
    } 
    }); 
    }); 

}); 
</script> 

get_sport.php

<label>Sport :</label> 
<form method="post"> 
<select name="sport" class="sport"> 
<option selected="selected">--Select Sport--</option> 
<?php 
$sql="SELECT distinct sport_type FROM events"; 
$result=mysql_query($sql); 
while($row=mysql_fetch_array($result)) 
{ 
    ?> 
     <option value="<?php echo $row['sport_type']; ?>"><?php echo $row['sport_type']; ?></option> 
     <?php 
} 
?> 
</select> 

<label>Tournamet :</label> <select name="tournament" class="tournament"> 
<option selected="selected">--Select Tournament--</option> 
</select> 


<label>Round :</label> <select name="round" class="round"> 
<option selected="selected">--Select Round--</option> 
</select> 
<input type="submit" value="View Picks" name="submit" /> 
</form> 

get_round.php

if($_POST['id']) 
{ 
    $id=$_POST['id']; 
    $sql="SELECT DISTINCT round FROM events WHERE tournament='$id'"; 
    $result=mysql_query($sql); 
    ?> 
    <option selected="selected">Select Round</option><?php 
    while($row=mysql_fetch_array($result)){ 
    ?> 
    <option value="<?php echo $row['round'] ?>"><?php echo $row['round'] ?></option> 
    <?php 

    } 
} 
?> 

उदाहरण

खेल => फुटबॉल; टूर्नामेंट => ईपीएल; दौर => 5;

ऊपर मान लिया जाये कि चयन किया जाता है जब उपयोगकर्ता क्लिक प्रस्तुत कोड क्वेरी करेगा select results from someTable Where sport='Football' AND...

मेरे समस्या

मैं एक सरल php isset() फ़ंक्शन का उपयोग करके selectboxes से डेटा प्राप्त

if(isset($_POST['submit'])){ 
    echo $sport=$_POST['sport']; 
    echo $tour=$_POST['tournament']; 
    echo $round=$_POST['round']; 
    : 
    : 

अब मेरी समस्या यह है कि सबमिट करें सबकुछ काम करता है लेकिन फॉर्म आर हो जाता है eloaded है, जो मैं नहीं करना क्या चाहते हैं

इम isset का एक AJAX के बराबर() या के लिए डेटा प्रपत्र पुन: लोड

कोई भी विचार/मदद बहुत हो जाएगा बिना प्रस्तुत किया जाना एक रास्ता तलाश

+0

_ "इम का एक AJAX के बराबर की तलाश में isset() "_ - यह समझ में नहीं आता है। – CBroe

उत्तर

1

सबमिट फ़ॉर्म के पुनः लोड से बचने के लिए एक अलग तरीके हैं।

एक समाधान (Example here और here) या डिफ़ॉल्ट कार्रवाई को रोकने के फार्म की कार्रवाई प्रस्तुत संभालने के लिए और वापसी 'असत्य' होगा (Example here)

तुम भी इनपुट प्रकार एक इनपुट प्रकार के लिए प्रस्तुत की जगह ले सकता बटन (या बटन), और फॉर्म सबमिट कार्रवाई को संभालने के बजाय क्लिक बटन कार्रवाई को संभाल लें। यह आपके अधिकांश 'फॉर्म सबमिट' समस्याओं के लिए एक आसान कामकाज होगा, लेकिन अर्थपूर्ण और वैध कोड बिंदु दृश्य में सबसे खराब समाधान है।

0

आप JQuery से AJAX अनुरोध के रूप में फ़ॉर्म सबमिशन कर सकते हैं और परिणामस्वरूप सफलता प्राप्त कर सकते हैं।

jQuery(document).ready(function(){ 

    jQuery('#form').submit(function(ev) { 

     $.ajax({ 
      url  : 'url', 
      type : 'POST', 
      dataType: 'json', 
      data : $('#form').serialiseArray(), 
      success : function(data) { 
       // Populate the result 
      } 
     }); 

     ev.preventDefault(); 
    }); 
}); 
+0

यह विधि बहिष्कृत है, आपको event.preventDefault() का उपयोग करना चाहिए; बजाय। – enguerranws

+0

धन्यवाद @enguerranws। अपडेट किया गया .. – Yasitha

0

प्रारंभ में Sport: ड्रापडाउन में सभी मान लोड

तब गतिशील Tournament और Round

// To Trigger Sport Change 
$(".sport").change(function() { 

    var selected_sport = $(".sport").val(); 
    var dataString = 'sport=' + selected_sport; 
    var urlAddress = "get_sport.php"; 
    $.ajax({ 
     url: urlAddress, 
     cache: false, 
     method: 'post', 
     data: dataString, 
     dataType: 'html', 
     success: function (result_data) { 
      $(".tournament").html(result_data); 
      // This will append the tournament drop-down dynamically 
     } 
    }); 
}); 

// To Trigger Tournament Change 
$(".tournament").change(function() { 

    var selected_sport = $(".sport").val(); 
    var selected_tournament = $(".tournament").val(); 

    var dataString = 'sport=' + selected_sport + '&tournament=' + selected_tournament; 
    var urlAddress = "get_round.php"; 
    $.ajax({ 
     url: urlAddress, 
     cache: false, 
     method: 'post', 
     data: dataString, 
     dataType: 'html', 
     success: function (result_data) { 
      $(".round").html(result_data); 
     } 
    }); 
}); 

पॉप्युलेट आपका संबंधित पीएचपी get_round.php

while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) { 
    foreach ($row as $r) { 
     $round = $r['round']; 
     echo '<option value = "' . $round . '">' . $round . '</option>'; 
    } 
} 
+1

शदाब आपको धन्यवाद देता है बीमार इसे जाने देता है और आपको बताता है कि यह कैसे काम करता है ... –

+0

@TimothyCoetzee का जवाब देने के लिए धन्यवाद, क्या यह काम किया? –

+0

नहीं ... मुझे पता है कि मेरे डेटाबेस से पूछताछ करने के लिए मुझे ड्रॉपडाउन को कैसे पॉप्युलेट करना है, सभी मूल्यों (सभी 3 चयन बॉक्स में) –

संबंधित मुद्दे