2016-07-25 2 views
-1

Вот мой код:Как получить значение переменной и передать его на AJAX URL

function download() { 
var val1 = $('#id').val(); 
var val2 = $('#user').val(); 
var url = "includes/downloads.php?id="; 
    $.ajax({ 
    url: url, 
    type: "POST", 
    data: { id: val1, user: val2 }, 
    error:function(){ 
    alert('Error!'); 
    } 
}); 

}

Единственная проблема в том, что я хочу передать «val1» значение для URL, поэтому я могу обработать его на моей странице downloads.php, потому что у меня есть несколько элементов в цикле, поэтому я пытаюсь выяснить, как передать идентификатор. По какой-то причине он продолжает передавать первый элемент только в моем цикле.

Это внутри моего цикла:

echo '<input type="hidden" id="id" value="'.$row['id'].'">'; 
echo '<input type="hidden" id="user" value="'.$user.'">'; 
echo '<div class="download" onclick="download()"><a href="'.$row['filename'].'.zip">download</a></div>'; 

Как я могу это сделать?

EDIT:

downloads.php страница:

$id = $_POST['id']; 
$user = $_POST['user']; 

// insert query 

ответ

1

Ваш весь код прекрасно. Только одно, что нужно изменить. Обратите внимание, что все поля, определенные в данных, будут отправляться в URL как заданный тип u. U может выбрать тип либо как пост, либо get.Just присваивать URL-адресу в URL-адресе не нужно передавать идентификатор с ним, это автоматически будет входить в данные.

function download (a) { 
    var val1 = $('#id'+a).val(); 
var val2 = $('#user'+a).val(); 
var url = "includes/downloads.php"; 
    $.ajax({ 
    url: url, 
    type: "POST", 
    data: { 'id' : val1, 'user' : val2 }, 
    error:function(){ 
    alert('Error!'); 
    } 
    }); 


    echo '<input type="hidden" id="id.$i." value="'.$row['id'].'">'; 
    echo '<input type="hidden" id="user.$i." value="'.$user.'">'; 
    echo '<div class="download" onclick="download(.$i.)"><a href="'.$row['filename'].'.zip">download</a></div>'; 
+0

Извините, я должен был объяснить далее, у меня есть петля. Я обновил свой оригинальный пост. – Ironank

+0

не беспокойтесь, если использовать цикл while, а затем назначьте переменную типа $ i для функции ur и добавьте ее с идентификатором полей ввода. –

+0

Вы имеете в виду $ i. должен быть $ row ['id']? Потому что, когда я помещаю $ row ['id'], я получаю ошибку 500. – Ironank

0

Вы передаете его, так же, как данные POST, а не в строке запроса, поэтому он будет появляться в $_POST и не $_GET.

Если вы действительно хотите, чтобы передать его в строке запроса для запроса POST, то вы должны сделать это вручную:

var url = "includes/downloads.php?id=" + encodeURIComponent(val1); 
    $.ajax({ 
    url: url, 
    type: "POST", 
    data: { user: val2 }, 
    error:function(){ 
    alert('Error!'); 
    } 
}); 
+0

Извините, я должен был объяснить далее, у меня есть петля. Я обновил свой оригинальный пост. – Ironank