Nasıl php istek tamamlama ilk sonucuna dayalı başka bir istek başlangıç ​​yapmak için?

2 Cevap php

A user is presented with a box. He enters a string and presses OK. He gets sent to the results page where there are some asynchronous calls to php scripts for the results.

Ama, aynı sayfada, orada da bir php isteği başlatmak için gereken diğer alanlar vardır, ama onlar ilk ilk isteğin sonucu olması gerekir.

Diğer bir deyişle,

Page launches 20 requests. Whenever a request completes it needs to initiate 3 more requests based on the result of the first request.

Ben bu eşzamanlı bu 20 istekleri yürütmek ve sonra adım 2 için ikinci bir sayfaya yönlendirmek zorunda kalmadan nasıl yapabilirim?

Thank You

2 Cevap

Bu AJAX ile yapılabilir bir şey değil mi? Yoksa soru soran olmasıdır?

İşte bir ajax öğretici: http://www.w3schools.com/Ajax/Default.Asp

İşte size gerçek bir örnek bir fikir vermek için AJAX kullanan bir iletişim sayfası:

<script type="text/javascript">
function ajax(url)
{
    var test = 0;

    var name = document.getElementsByName('name')[0];
    var phone = document.getElementsByName('phone')[0];
    var email = document.getElementsByName('email')[0];
    var msg = document.getElementsByName('msg')[0];

    if(name.value == ""){ name.style.backgroundColor = "#FFFFCC"; test=1;
    }else{ name.style.backgroundColor = "#FFFFFF"; }

    if(email.value == ""){ email.style.backgroundColor = "#FFFFCC"; test = 1;
    }else{ email.style.backgroundColor = "#FFFFFF"; }

    if(msg.value == ""){ msg.style.backgroundColor = "#FFFFCC"; test = 1;
    }else{ msg.style.backgroundColor = "#FFFFFF"; }

    if(test == 1){
        $j("#error").slideDown(600, function(){ }); //Using jQuery
        return false;
    }else{
        document.getElementById('contactButton').value = "Sending";
        $j("#error").slideUp(600, function(){ });
    }

    if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else{// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    url = url + "?name=" + name.value;
    url = url + "&phone=" + phone.value;
    url = url + "&email=" + email.value;
    url = url + "&msg=" + encodeURI(msg.value);


    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);

    function stateChanged(){
        if (xmlhttp.readyState==4) {
            var response = xmlhttp.responseText;
            if(response == "true"){
                document.getElementById('contactForm').reset();
                document.getElementById('contactButton').value = "Sent :)";
            }else{
                document.getElementById('contactButton').value = "Can't send your message now :(";
            }
        }
    }
}
</script>

<div id="error" style="display:none; width:100%; border:1px solid #000000; background-color:#91B933; text-align:center">Please fill in all the highlighted areas.</div>
<div style="width:100%">
<div style="float:left; width:auto; position:relative; left:50%;">
<div style="float:left; position:relative; left:-50%;">
    <div style="float:left; margin:20px;">
    <form id="contactForm">
    <table border=0 style="width:300px;">
    <tr><td>Name:</td><td><input type="text" name="name"></td></tr>
    <tr><td>Phone Number:</td><td><input type="text" name="phone"></td></tr>
    <tr><td>Email:</td><td><input type="text" name="email"></td></tr>
    <tr><td colspan=2>Message:</td></tr>
    <tr><td colspan=2><textarea name="msg" style="width:95%"></textarea></td></tr>
    <tr><td colspan=2 align=right><input id="contactButton" type="button" onclick="ajax('contact.php')" value="Send"></td></tr>
    </table>
    </form>
    </div>
</div>
</div>
</div>

<div id="response" style="display:block;"></div>

XMLHttpRequest (tarayıcı veya uygun sürüm) suyu olduğunu.

Yani kullanıcı sonra, sizin örnekte, onların metin girer ve bunun yerine başka bir sayfaya göndererek, size php sayfasına bir XMLHttpRequest gönderecek bir javascript işlevi, çağırmak için "" = a onclick kullanabilirsiniz gönderin tıklayın. Sonra xmlhttp.responseText kullanabilirsiniz; Eğer PHP sayfasından yankı yanıtı okumak için.

Eğer yukarıdaki örnekte olduğu gibi var response = xmlhttp.responseText; kullanırsanız, o zaman başka bir php sayfası başka XMLHttpRequest yapmak için kullanabileceğiniz tepkisi denir bir değişkenin içinde php sayfasından tepki olacaktır.

Mantıklı?

Bazı Ajax öğreticiler geçmesi. Sen onu asmak alırsınız.