0

テスト用の jquery-ajax ポスト スクリプトを作成しました。これを評価およびコメント システムに実装しますが、このスクリプトが機能しません。

このような単純な投稿リクエストのみを行いました。

test.php

<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript">
$.ajax({ 
  type: "POST",
  url: 'test.php',                        
  data: {
        value1:'value1', 
        value2:'value2', 
        value3:'value3', 
        value4:'value4', 
        value5:'value5', 
        value6:'value6', 
        value7:'value7', 
        value8:'value8'
      },                        
  cache: false,              
  success: function(value)          
   {
       alert(value)
   }
});
</script>

<?php 
$value1 =  $_POST['value1'];
$value2 =  $_POST['value2'];
$value3 =  $_POST['value3'];
$value4 =  $_POST['value4'];
$value5 =  $_POST['value5'];
$value6 =  $_POST['value6'];
$value7 =  $_POST['value7'];
$value8 =  $_POST['value8'];

$value = array($value1,$value2,$value3,$value4,$value5,$value6,$value7,$value8);
echo json_encode($value);

?>

それを機能させる方法を見て、提案してください。

ありがとう。

4

3 に答える 3

0

ajax呼び出しには別のファイルを使用する必要があります。そうしないと、そのページのすべてのhtmlが返されます。

だから私は2つのファイルを使用しました

index.php

<script type="text/javascript">
$(document).ready(function() {
$.ajax({ 
 type: "POST",
 url: 'test.php',                        
 data: {
    value1:'value1', 
    value2:'value2', 
    value3:'value3', 
    value4:'value4', 
    value5:'value5', 
    value6:'value6', 
    value7:'value7', 
    value8:'value8', //value5:'value8' before
  },
 cache: false,              
 dataType: 'json',  //as you are return json from php file so i used dataType json
 success: function(value)          
  {
   $.each(value, function(key, val){
    alert(val);
   });
  }
});
});  

test.php

<?php 
$value1 =  $_POST['value1'];
 $value2 =  $_POST['value2'];
$value3 =  $_POST['value3'];
$value4 =  $_POST['value4'];
$value5 =  $_POST['value5'];
$value6 =  $_POST['value6'];
$value7 =  $_POST['value7'];
$value8 =  $_POST['value8'];

$value = array($value1,$value2,$value3,$value4,$value5,$value6,$value7,$value8);
echo json_encode($value);

?>
于 2012-10-20T05:39:01.347 に答える
0

POST配列変数がによって設定されていることを確認してください

$value1 =  isset($_POST['value1']) ? $_POST['value1'] : '';
于 2012-10-20T05:46:52.173 に答える
0

Pragnesh Chauhan が言及したことを解決するには、戻り値が有効な JSON ではないために問題が発生しているように見えます (他のページコードが含まれているため、無効になっているためです。これには 2 つの簡単な解決策があります。

まず、Pragnesh Chauhan のものです。ajax 呼び出しを別のファイルに入れます。さらに、ブラウザーに他に何も送信されていないことを確認してください (末尾のスペースを含む)。

2 つ目は、現在の単一ファイル方式を機能するものに作り直すことです。あなたはそれをもっとこのように見せることでこれを行うでしょう...

<?php 
if(isset($_POST['value1']){ // Checking to see if something was sent to the ajax, you coudl also send another variable is value1 isn't a garuntee
  $value1 =  $_POST['value1'];
  $value2 =  $_POST['value2'];
  $value3 =  $_POST['value3'];
  $value4 =  $_POST['value4'];
  $value5 =  $_POST['value5'];
  $value6 =  $_POST['value6'];
  $value7 =  $_POST['value7'];
  $value8 =  $_POST['value8'];
  $value = array($value1,$value2,$value3,$value4,$value5,$value6,$value7,$value8);
  echo json_encode($value);
  exit(); // This tells it to stop so it won't echo out the rest of your page.
}?> 
<script type="text/javascript">
$.ajax({ 
  type: "POST",
  url: 'test.php',                        
  data: {
    value1:'value1', 
    value2:'value2', 
    value3:'value3', 
    value4:'value4', 
    value5:'value5', 
    value6:'value6', 
    value7:'value7', 
    value8:'value8'
  },                        
  cache: false,              
  success: function(value){
    alert(value)
  }
});
</script>

もちろん、全体をもう少しきれいにするためにできる改善点は他にもありますが、少なくともそれでうまくいくはずです。

于 2012-10-20T06:07:29.557 に答える