2016-07-20 13 views
1

私はこれを動作させるために最善を尽くしています。しかし、AJAXはかなり新しいものです。だから、そこにぶら下がってください...Ajaxを使ってセッションとエコーの結果を作成する

私はこの問題を得るためにここでいくつかの質問をしました。私(私たち)は長い道のりを歩んできました。しかし今、次の問題はここにあります。

私はにセッションをエコーし​​ようとしていますAJAXを使用している部門でをエコーし​​ます。 AJAXコードが動作しているので、私はそれを実行したいdivにプレーンテキストをエコーすることができます。 唯一の問題は、アイテムのタイトルが表示されないことです。

私はいくつかの項目を持っています(この例では3と言います)。カスタムをセッション内に保存するようにしたいと思います。したがって、顧客が保存をクリックしたとき。 ajax divにタイトルが表示されます。カスタムは、それが第一と第三の項目などを表示する第三項目をクリックすると...

マイHTML:

<button type="submit" class="btn btn-primary text-right" data-toggle="modal" data-target=".post-<?php the_ID(); ?>" data-attribute="<?php the_title(); ?>" data-whatever="<?php the_title(); ?>">Sla deze boot op <span class="glyphicon glyphicon-heart" aria-hidden="true"></span></button> 

私のAJAXコード:

$(".ajaxform").submit(function(event){ 
event.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "example.com/reload.php", 
     success: function(data) { 
     $(".txtHint").html(data);  
     }, 
    error: function() { 
     alert('Not OKay'); 
     } 
    }); 
     return false; 
}); 

マイPHP reload.php

<h4>Saved Items</h4> 
<p>Blaat...</p> 
<?php echo "Product Name = ". $_SESSION['item'];?> 

私はここでこのコードを見ました:私はこのコードを使用していません。私が自分のコードのためにそれを使うことができるのか疑問に思うだけです。これに

変更session.php:

<?php 
    session_start(); 

    // store session data 
    $_SESSION['productName'] = $_POST['productName']; 

    //retrieve session data 
    echo "Product Name = ". $_SESSION['productName']; 
?> 

そして、あなたのHTMLコード内:

function addCart(){ 
    var brandName = $('iframe').contents().find('.section01a h2').text(); 

    $.post("sessions.php", {"name": brandName}, function(results) { 
     $('#SOME-ELEMENT').html(results); 
    }); 
} 

私は私のタイトル();:

<?php 
    // Set session variables 
    $_SESSION["item"][] = get_the_title(); 
?> 

を取得していますどのようにこれは私が使うことができるものですか?誰かがコードを教えてくれますか?

ありがとうございます!

+1

エラーが発生しましたか? –

+0

'example.com/reload.php'というURLを'/reload.php'に変更してください。両方のページが同じドメインと同じフォルダにある場合。 –

+0

リモートページのセッションセットは、リロードするまでローカルページで使用できないことに注意してください。 AJAXの応答をエコーすることはできますが、セッションをローカルに設定することはできません。 –

答えて

1

私はあなたが達成しようとしていることについてはあまりよく分かりませんが、ここでは、製品の名前でHTTPリクエスト(POST)を作成し、PHPセッションに保存するという、セッション内のすべての製品名を出力:

HTML

<p>Product A <button class="add-product" data-product="Product A">Add Product</button></p> 
<p>Product B <button class="add-product" data-product="Product B">Add Product</button></p> 
<p>Product C <button class="add-product" data-product="Product C">Add Product</button></p> 

<div id="response"> 
</div> 

はJavaScript

$('.add-product').click(function() { 
    var productName = $(this).data('product'); 

    $.post('addProduct.php', {productName: productName}, function(data) { 
     $('#response').html(data); 
    }) 
}); 

PHP(addProduct.php)

<?php 

session_start(); 

if (!array_key_exists('products', $_SESSION) || !is_array($_SESSION['products'])) { 
    $_SESSION['products'] = []; 
} 

$productName = array_key_exists('productName', $_POST) ? (string) $_POST['productName'] : ''; 

if ($productName) { 
    $_SESSION['products'][] = $productName; 
} 
?> 
<h4>Your added products:</h4> 
<ul> 
    <?php foreach ($_SESSION['products'] as $product): ?> 
    <li><?php echo htmlspecialchars($product); ?></li> 
    <?php endforeach;?> 
</ul> 
+0

これは私のAJAXスクリプトにどのように表示されますか? 。 '$( " ajaxform")を提出(関数(イベント){ event.preventDefault(); $ アヤックス({ タイプ: "POST"、 URL: "example.com/reload.php" 、 成功:機能(データ){ $( "txtHint。")HTML(データ); 。}、 エラー:関数(){ 警告( '大丈夫ではない'); } }); 復帰false; }); ' – Steggie

+0

ああ、そのコードの平和は私がStackoverflowで見つけたものです。私はそれを使用していません。私はスクリプトでそれを使用できるかどうか疑問に思っていました。そしてどう? @フランクT – Steggie

+0

あなたのコードはほとんどフランクT感謝! 1つはタイトルを1つ以上(正確には4回)投稿しています... @Frank T第1回4回、第2回3回、第3回2回、最後1回を投稿します。何点あるの? – Steggie

関連する問題