Mesaj MySQL Sonuç jQuery ile AJAX kullanımı

3 Cevap php

Javascript nispeten yeni olan, AJAX ve jQuery, ben bir mysql sorgu sonuçları 2 olan, veritabanına 3 değerlerini göndermek istiyorum. Kaynak koduna baktığımızda, var userid kullanıcıların id doğru değeri vardır. İkinci (var obid) ve üçüncü (var authoruserid) değerleri. Ben kaynak kodu kontrol ederken sorgudan döndürülen satırlar boş ve Firebug değerler sadece basit var adı vardır. Veriler de veritabanına nakledilen değildir.

Herhangi bir yardım her zaman takdir edilir.

Gerçekten birisi sadece ben AJAX bölümü hakkı yapıyorum söyle eğer mutlu olmak ve AJAX sonra bu çalışmıyor neden diğer nedenler aramaya başlayabilir, veri olarak SQL satırları kullanabilirsiniz olacaktır.

Sunucu tarafı:

if( isset( $_POST['user_id'] ) && isset($_POST['ob_id'] ) && isset( $_POST['author_user_id']) ) {

    $result = mysql_query("INSERT INTO ilike (ilike_user_id, ilike_object_id, ilike_author_user_id) VALUES (" . mysql_real_escape_string( $_POST['user_id'] ) . ", " . mysql_real_escape_string( $_POST['ob_id'] ) . ", " . mysql_real_escape_string( $_POST['author_user_id'] ). ")" );
    echo $result ? 'Vote Succeeded' : 'Vote Failed: ' . mysql_error();
    exit;
    }
$status = $rows['status_id']; // done via a separate query
$aid = $rows['user_id']; // as above
$user_id = uid(); // User cookie check function

HTML:

<a href="javascript:;" onclick="updateScore(this)" class="blue">Vote</a>

Javascript:

<script type="text/javascript">
function updateScore( answer )
{
var userid = '<?php echo $user_id; ?>';
var obid = '<?php echo $status_id; ?>';
var authoruserid = '<?php echo $aid; ?>';
    if ( confirm( "Are you sure?" ) )
    {
        $.post('index.php', {user_id: "userid", ob_id: "obid", author_user_id: "authoruserid"}, function(d)
        {
            alert('Vote Accepted: ' + d);
            $(answer).after("<span>You Voted!</span>").remove();
        });
    }
}

</script>

Kaynak kodu:

<script type="text/javascript">
function updateScore( answer )
{
var userid = '5';
var obid = '';
var authoruserid = '';
    if ( confirm( "Are you sure?" ) )
    {        
$.post('index.php', {user_id: "userid", ob_id: "obid", author_user_id: "authoruserid"}, function(d)
        {
            alert('Vote Accepted: ' + d);
            $(answer).after("<span>You Voted!</span>").remove();
        });
    }
}

</script>

3 Cevap

Im göz doktoru görmek gitmek gerekir. Ben üzerinde benim php kodunda bir kilde dirseği baktı. Im Hepinizi rahatsız için üzgünüm. Ben de vars kurtuldum, ve sadece özellikler listesinde bunları yankılandı.

Şerefe.

Nereye DB değerleri atar sizin kod parçası $user_id, $status_id?

Ben sadece $ yardımına atama görebilirsiniz. Sayfa görüntülenen alır önce o sizin sorununuz olabilir, hiçbir şey $user_id ve $status_id atanan alıyorum?

Sayfada size $ status_id diyorlar oysa sunucu tarafı kodu üzerinde, $status = $rows['user_status']; var

Bu ile sunucu kodu son bölümünü değiştirin:

$status_id = $rows['user_status']; //changed $status to $status_id
$aid = $rows['user_id']; // this works

//You need an assignment to $user_id
$user_id = $rows['something'];//I'm guessing this assignment is missing

Ben de jQuery için oldukça yeni ve ben aslında bunu benim cehalet pardon lütfen, henüz AJAX işlevleri kullanmamışlardır. Ama sen obid, userid tırnak gerekir, ve authoruserid tuşuna emin: {veri parametre olarak gönderilen değer çiftleri [(3)] } function? Ben görmüyorum, çünkü jQuery başvuru kılavuzunda değişken adları etrafında kullanılan tırnak ben, ne de diğer kod örnekleri çevrimiçi. Bu gerçekten gibi bir şey göndermek için çalışıyormuş gibi sadece, değişmez değerleri tırnak kullanmak istiyorsunuz gibi geliyor bana:

{user_id: "32", username: "Bob", message: "hello world!"}

Belki de böyle bir şey daha iyi çalışabilir:

$.post('index.php', {user_id: userid, ob_id: obid, ...}, ...

Ama tamamen yanlış olabilir ...