4

PHP スクリプト、HTML フォーム、および JS コード (AJAX) があります。

if(isset($_POST['site'])){

$homepage = file_get_contents("http://".$_POST['site']);
preg_match('%<meta.*name="keywords".*content="(.*)"\s+/>%U', $homepage, $regs);

if(count($regs))
{
$myString = implode('', $regs );  
 print_r($myString);
}
}


?>


<form id=payment method="post" name="forma1">
<label for=name>ENTER www.bbc.com:</label>
<input id="name" type=text placeholder="Write here..."         name="site">
<input type="submit" value="START" name="searchbutton" id="sb">
</form>

<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function(){
         $('#payment').submit(function(e){
            e.preventDefault();
           $.ajax({
                 type: "POST",
                url: $(this).attr('action'),
                data: $(this).serialize(),
                dataType: 'json',
                success: function(data)
                {
                    alert("OK, AJAX IS WORKING");
                }
            });
        });
    });
    </script>

JS コードがなくても、すべて正常に動作します。PHPスクリプトも問題なく動作し、必要な情報を受け取った後、ボタンをクリックすると. しかし、AJAX を使用してボタンをクリックしようとすると、何のアクションもありません。私は、JSコードが間違っていて、PHPもそうかもしれないと思っています。私を助けてコードを変更できる専門家をお願いします。

4

2 に答える 2

0

編集:ここに問題があります。設定dataType: jsonしていますが、PHPがJSONを返していません。行を削除しdataType: 'json'ます。また、開始PHPタグを忘れないでください:<?php
編集2:OK、メタタグを取得して表示するためのコードは次のとおりです。PHP:

$homepage = file_get_contents("http://".$_POST['site']);
preg_match('%<meta.*name="keywords".*content="(.*)"\s+/>%U', $homepage, $regs);
if(count($regs)) {
  $myString = implode('', $regs );  
 echo $myString;
}

(上記のコードはあなたの質問からのものです-私はそれが機能すると仮定しています)Javascript AJAX成功関数:

success: function (data) {
  $('#metaTags').text(data)
}

HTML:

<div id="metaTags"></div>
于 2012-08-30T01:01:57.277 に答える
0

これは私にとってはうまくいっています...私がやったようにURLとエラー応答を直接入れてみてください。うまくいかない場合は、どのようなエラーが表示され、dataType:'json'も削除されます

<?php  if(isset($_POST['site'])){

 var_dump($_POST); 
 exit;


}
?>
<html>

<head>
 <script src="http://code.jquery.com/jquery-latest.js"></script>    
<script type="text/javascript">
    $(document).ready(function(){
         $('#payment').submit(function(e){
            e.preventDefault();
           $.ajax({
                 type: "POST",
                url: 'test.php',
                data: $(this).serialize(),
                success: function(data)
                {
                    alert("OK, AJAX IS WORKING"+data);
                },
                 error:   function(xhr, ajaxOptions, thrownError) { alert(xhr.status);
                                         } 
            });
        });
    });
    </script>
</script>

</head>     

<div>
<form id="payment"    method="post" name="forma1">
        <label for=name>ENTER www.bbc.com:</label>
        <input id="name" type=text placeholder="Write here..."         name="site">
        <input type="submit" value="START" name="searchbutton" id="sb">
</form>

</div>  


</html> 
于 2012-08-30T04:11:13.060 に答える