JQuery ile bağlantı yere göre bir eylem yapmak için

2 Cevap php

How can you retrieve the value of the rel attribute of a given link and pass it to the handler?

Böyle bu bağlantıların bir listesi var

Link list

<div id='one_answer'>Answer1
    <a href="$" class="delete_answer" rel='Answer1'>delete</a>
</div>
<div id='one_answer'>Answer2
    <a href="$" class="delete_answer" rel='Answer2'>delete</a>
</div> 
<div id='one_answer'>Answer3
    <a href="$" class="delete_answer" rel='Answer3'>delete</a>
</div>

These links are generated by the following code. The following value of the rel does not seem to be passed to the handler.

Links generated by PHP

    echo ($answer . "<a href='#'"                                                                                                                  
        . "class='delete_answer'"
        . " rel='" . $body . "'"         // I identify the answer
                                         // by the body of the answer
                                         // in the database
        . ">delete</a>"
    );

The user clicks the second link. The rel attribute should pass the answer to the handler. jQuery should perform the following action based on the POST -data.

jQuery

jQuery('a.delete_answer').live('click', function(){
    jQuery.post('/codes/handlers/delete_an_answer.php', 
        { delete_answer: jQuery(this).attr('rel') },    
        function(){
            $("#one_answer").removeClass("yellow");
        })
});

The file delete_an_answer.php

$dbconn = pg_connect("host=localhost port=5432 dbname=masi user=masi password=123");
// remove the answer
$result = pg_query_params ( $dbconn,                                                                                                                                                                           
    'DELETE FROM answers 
    WHERE answer = $1',
    array ($_POST['answer'] )    // Problem here, because
                                 // $_POST['answer'] is empty when it gets here
                                 // so no answer is deleted
);

Ben Postgres cevaplar almak ve rel niteliğin değeri $ gövde olmak üzere aynı anda koymak.

2 Cevap

Bu kod ile çeşitli sorunları görebilirsiniz:

  1. Birden fazla var <div id='one_answer'>. Kimlikleri benzersiz olmalıdır, yani $("#one_answer").removeClass("yellow"); her zaman seçeneğini seçin the first div, tüm divs olacaktır.
  2. delete_an_answer.php - php size $_POST['answer'] arıyorsanız, ama ajax var {question_id: jQuery(this).attr('rel')}.
  3. Örneğinizi bağlantıları garip olan, bir rel, ve href='$' yok. Ayrıca <div id='one_answer> kırık olduğunu, başka bir tek alıntı olmalıdır. Ben bu copy-paste sorunlardır varsayıyorum.