2011-11-16 18 views
3

私はこの星評価を持っています。私はjQueryから実装しました。コメント、ユーザーID、クリックした星の価値を保存する必要があります。私が知らないのは、それをAjax呼び出しで渡す方法と、PHPが呼び出しを処理するために最低限必要なものです。ここでPHPページへのajax呼び出しの実行

星のコードは私のコードである - それはコメント欄、スター値とユーザーIDを持つ星を持っているあなたが見ることができるようにここで

$user_id 

という変数に格納されているコード

<tr> 
     <td style="padding:10px;"> 
     <span style="font-size: 20px; vertical-align:top;">Comments</span> 
     </td> 
     <td style="padding:10px;"> 
     <textarea name="comments1" cols="60" rows="2"></textarea> 
     </td> 
     <td> 
     <div> 
      <input name="star1" value "1" type="radio" class="star"/> 
      <input name="star1" value="2" type="radio" class="star"/> 
      <input name="star1" value="3" type="radio" class="star"/> 
      <input name="star1" value="4" type="radio" class="star"/> 
      <input name="star1" value="5" type="radio" class="star"/> 
      </div> 
     </td> 
    <tr> 

ajax呼び出し - これは要求を送信しているページへの呼び出しの試行ですが、この呼び出しにコメントとユーザーIDを含めるにはどうすればいいですか?今

$('.star').rating({ 
     callback: function(value, link) { 
      var name = $(this).attr('name'); 
      $.ajax({ 
       url: "ajax.php", 
       data: "name=" + name + "&value=" + value, 
       cache: false, 
       success: function(response) { 
        try { 
         console.log(response); 
        } catch (err) { 
         alert(response); 
        } 
       } 
      }); 
     } 
    }); 

ajax.phpは、変数を持ってい$passed_user_id, $passed_comments, $passed_ratingval。 PHPで呼び出しがトリガーされたときに、どのようにこれらの値を取得しますか?

$passed_comments = //get the value being passed from ajax call 
$passed_ratingval = //get the value being passed for the rating value 
$passed_user_id = //get the value being passed for the user_id` 

のようなものは、私は私と一緒に裸してくださいAJAXとPHPに種類の新しいです。私はすべての設定、挿入クエリ、接続すべてが動作しています..ちょうど、この作業をajax呼び出しで行う方法がわかりません。

$_POST['op_type'] 

と、この中:私が使用してデータを受信する

jQuery.post("load.php", { 
      op_type : opType, 
      xor : xor.toString(), 
      or : or.toString(), 
      and : and.toString(), 
      from : seeds.toString(), 
      last_id : jQuery("input[type=hidden]:last").val(), 
      last_update : last_update_time 
     }, function(data) { 
      var json = jQuery.parseJSON(data); 
      if (json.list.length > 0) { 
       last_update_time = Math.floor(new Date().getTime()/1000); 
       jQuery("div#list_content ul.no-list").append(json.list); 
      } 
     }); 

そしてPHPで:

は、ここで私は一つのプロジェクトで使用鉱山のコード例は、あるあなたに

答えて

1

これはハッキーですが、これはあなたのために働くでしょう。また、1ページに複数のレーティングを設定することもできます(TRを検討していると思われます)。

HTML:

<tr> 
    <td style="padding:10px;"> 
    <input type="hidden" name="userID" value="<?php echo $user_id ?>"> 
    <span style="font-size: 20px; vertical-align:top;">Comments</span> 
    </td> 
    <td style="padding:10px;"> 
    <textarea name="comments" cols="60" rows="2"></textarea> 
    </td> 
    <td> 
    <div> 
     <input name="star1" value "1" type="radio" class="star"/> 
     <input name="star1" value="2" type="radio" class="star"/> 
     <input name="star1" value="3" type="radio" class="star"/> 
     <input name="star1" value="4" type="radio" class="star"/> 
     <input name="star1" value="5" type="radio" class="star"/> 
    </div> 
    </td> 
<tr> 

JS:あなたが代わりにGETのPOSTを使用している場合も

$('.star').rating({ 
    callback: function(value, link) { 
    var name = $(this).attr('name'); 
    var userID = $(this).closest('tr').find('input[name="userID"]').val(); 
    var comments = $(this).closest('tr').find('textarea[name="comments"]').val(); 
    $.ajax({ 
     url: "ajax.php", 
     data: "name=" + name + "&value=" + value + "&userID=" + userID + "&comments=" + comments, 
     cache: false, 
     success: function(response) { 
     try { 
      console.log(response); 
     } catch (err) { 
      alert(response); 
     } 
     } 
    }); 
    } 
}); 

、あなたは以下のようなビットよりよいあなたのAJAX呼び出しをフォーマットすることができます。あなたのajax.phpファイルで$ _POST []を使うことを忘れないでください。

$('.star').rating({ 
    callback: function(value, link) { 
    var name = $(this).attr('name'); 
    var userID = $(this).closest('tr').find('input[name="userID"]').val(); 
    var comments = $(this).closest('tr').find('textarea[name="comments"]').val(); 
    $.ajax({ 
     url: "ajax.php", 
     type: "POST", 
     data: { 
     name: name, 
     value: value, 
     userID: userID, 
     comments: comments 
     }, 
     cache: false, 
     success: function(response) { 
     try { 
      console.log(response); 
     } catch (err) { 
      alert(response); 
     } 
     } 
    }); 
    } 
}); 
+0

これは、ajax.phpでこのような値を取得することを意味します。<?php extract $ _POST; $ user_id = $ _POST ['value']; $ selected = $ _POST ['name']; $ comments = $ _POST ['コメント']; ?> – user710502

+0

私はそれをしようとしているが、今は働いている私は何が紛失しているか分からない..私は私のajax.phpをテストし、それは独自に挿入されている..しかし、私は星をクリックします..何も起こらない – user710502

+0

コンソールまたはFirebugのエラーをチェックしましたか? –

0

ありがとうございました私は他の変数も得ます。 jQueryのJSONを解析afyerだから、リストプロパティを介して、$ htmlの変数へのアクセスを得ることができ

echo json_encode(array("list"=>$html)); 

:私はこのような何かを返すように 。

だから、jQueryでリクエストタイプを指定し、そのリクエストタイプをPHPで取得する必要があります。 JSONでデータを送信することもオプションの1つです。 jQueryとPHPもXMLをサポートしていますが、私はそれを扱っていませんでした。

関連する問題