jQuery $. php sorunu ajax

4 Cevap php

i have two problems with jquery $.ajax. first problem is ihave a php file named action.php and here the code:

if($_GET['action']=='add'){
    //rest of the code here
}

. Ve ben formu doldurur zaman o aramak için jquery $ Ajax işlevini kullanın:

$.ajax({type:"POST", url:"action.php?action=add", data:$("#form").serialize(), cache:false, timeout:10000});

Bu çalışıyor ama ben bilmek istedim verilerle kodu ve url değil eklemek = eylemi göndermek için yine de var mı?

ve ben sahip ikinci bir sorun i bir bağlantı olması:

<a href="#" onclick="delete(4);">delete row from mysql where id is 4</a>

ve bir jquery fonksiyonu:

    function deleteUser(id){
    $.ajax({type:"POST", url:"action.php?action=delete", data:"id="+id, cache:false, timeout:10000});}

ve tabii action.php kodu:

if($_GET['action']=='deletestudent'){
    mysql_query("DELETE FROM `students` WHERE `student_id` = {$_POST['id']}");
}

ama ben work.what yapmalıyım değil mi?

4 Cevap

First part: Evet

var postData = $("#form").serialize();
postData.action = 'add';
$.ajax({
    type:"POST"
  , url: "action.php"
  , data: postData
  , cache: false
  , timeout:10000
});

Sizin "eylem" değerleri uyumlu değildir çünkü For the 2nd part: bu çalışma değil: delete vs deletestudent. Ne de işlev adları şunlardır: delete() vs deleteUser()

Ayrıca, ben de bu sorguda bazı SQL enjeksiyon koruma uygulanması tavsiye ederim.

Sen bir işlevi deleteUser() var ve php script {[(3 arıyor yaparken siz bir delete delete() bile sonrası harekete yolluyorlar kullanıyor )]}

Lütfen OnClick yapmak onclick="deleteUser(4);"

ve sizin eylemi değiştirmek

$.ajax({url:"action.php?action=delete&id="+id, cache:false, timeout:10000});}

karşı

$.ajax({url:"action.php?action=deletestudent&id="+id, cache:false, timeout:10000});}

İlk sorun için:

Siz forma ihtiyacınız ad / değer ile gizli bir giriş ekleyebilirsiniz. Örnek:

<input type="hidden" name="action" value="add" />

İkinci sorun için:

Koduna göre, bu "sil" göndermek gibi görünüyor ama durum size "deletestudent" için, belki de bu senin sorunun eşit olmadığını test ediyoruz.

o kaldırmak GET türünü chnage, $. ajax varsayılan türü GET

$.ajax({url:"action.php?action=delete&id="+id, cache:false, timeout:10000});}

php değiştirmek sizin

....WHERE `student_id` = {$_GET['id']}");