2016-05-26 3 views
0

申し訳ありませんPHPに初心者の方はカールフォームを送信しようとしていますが、最初のサブミット後に結果を保持します。これらのボタンを表示し、どのボタンがクリックされたかに応じて、サブミットはポップアップで第2の値を表示します。その値をポップアップに正しく渡しますが、2回目の送信がクリックされたときに画面が更新されないようにします。PHPのカールフォームの送信後にリフレッシュしないでください、またはxmlhttprequest xmlhttprequest

ページは、あなたがAJAX電話をかける必要があり、リフレッシュさせたくない場合は任意のポインタは

<?php session_start(); 
?> 

<html> 
<head> 

    <title>PHP Test</title> 

</head> 
<body> 

<SCRIPT TYPE="text/javascript"> 

    function popup(mylink, windowname) 
    { 
    if (! window.focus)return true; 
    var href; 
    if (typeof(mylink) == 'string') 
    href=mylink; 
    else 
    href=mylink.href; 
    window.open(href, windowname, 'width=700,height=235,scrollbars=yes'); 
    return false; 
    } 

    </SCRIPT> 

    <form action="index.php" method="post"> 

    CHECK DOMAIN: 
    <input type="text" input name="checkDomain" value="<?php echo isset($_POST['checkDomain']) ? $_POST['checkDomain'] : '' ?>"/> 
    <button type="submit" value="Submit">Check</button> 

<?php 

$DomainArray = array("ie","com","net"); 

//IF WE WANT TO PARSE XML RESPONSE 
function produce_XML_object_tree($raw_XML) { 
    libxml_use_internal_errors(true); 
    try { 
     $xmlTree = new SimpleXMLElement($raw_XML); 
    } catch (Exception $e) { 
     // Something went wrong. 
     $error_message = 'SimpleXMLElement threw an exception.'; 
     foreach(libxml_get_errors() as $error_line) { 
      $error_message .= "\t" . $error_line->message; 
     } 
     trigger_error($error_message); 
     return false; 
    } 

    return $xmlTree; 
} 
if(!empty($_POST)) {}{ 


if(!empty($_POST["checkDomain"])) { 
$checkDomain = $_POST["checkDomain"]; 

if(!empty($_POST["form2-submit"])) { 
$whoIs = $_POST['form2-submit']; 
} 

if ($checkDomain !=null || $whoIs !=null) 
{ 
    //Check if a TLD has been entered 
    if (strpos($checkDomain, '.') !== FALSE) 
    { 

     $domain = substr($checkDomain, 0, strpos($checkDomain, ".")); 
     $DomainList = substr($checkDomain, strpos($checkDomain, ".")+1); 


     $url = 'check1'; 

    } 

else if (!empty($_POST['form2-submit'])) { 
$WhoisDomain = $DomainArray[$whoIs-1]; 
    $url = 'check2'; 
    } 

else{ 
    echo ' Checking all domains:'; 
     $DomainList = implode(",",$DomainArray); 
     $url = 'check3'; 

    } 
} 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$xml = curl_exec($ch); 
curl_close($ch); 


$cont = produce_XML_object_tree($xml); 
} 

$_SESSION["otherXML"] =$xml; 

    foreach($cont->Domain as $domain){ 
     print '<br/>'.(string)$domain; 

    } 


$index = 0; 
    foreach($cont->RRPText as $rRPText){ 
    $index++; 
     print '<br/>'.(string)$rRPText; 
     //echo 'index'.$index; 
     if ($rRPText == "Domain not available") 
     { 

     print ' <button type="submit" name="form2-submit" onclick="popup(\'popup.php\')" value="'.$index.'">whois </button> '; 

     } 

    } 
} 

?> 
    </form> 


</body> 
</html> 
+0

提出時に「*画面の更新*」を希望しない場合は、[非同期リクエスト](https://developer.mozilla.org/en-US/docs/Web)を調べる必要があります。/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests) – Marcus

+0

ありがとう私は非同期http要求をしようとしている – Brian

答えて

0

を理解さ。

人生を楽にするには、jQuery's POSTを使用します。

0

httpRequestを使用して非同期処理を実行しようとしましたが、何も返されませんでしたか? APIによると、returnはText、HTML、XMLのいずれかです。私はそれらをすべて試しました。

<SCRIPT TYPE="text/javascript"> 

function httpGetAsync() 
    { 
    var xmlHttp = new XMLHttpRequest(); 
     xmlHttp.open("GET", "URL....", true); 
     xmlHttp.send(null); 
alert(xmlHttp); 
alert(xmlHttp.responseText); 
    return xmlHttp.responseText; 
} 
    </SCRIPT>