Wpis z mikrobloga

#javascript #ajax

takie coś jakby działa, ale potrzebny jest ajax który nie będzie przeładowywał strony

var myStringArray = new Array("anime", "randomanimeshit");
$.each(myStringArray, function( index, item )
{
document.getElementById('tagInput').value = "$item";
$( "#taginput" ).keyup();
$( "li[data-content='$item']" ).next().click();
$("[id='group-search-button']:eq(1)").click();
});

I tu myślę co dalej

var myStringArray = new Array("anime", "randomanimeshit");
$.each(myStringArray, function( index, item ) {
document.getElementById('tagInput').value = "$item";
$( "#taginput" ).keyup();
$( "li[data-content='$item']" ).next().click();
var formData = new FormData(document.getElementById('tagInput').closest('form'));
$.ajax({
type: "POST",
url: "[http://www.wykop.pl/ustawienia/czarne-listy/",](http://www.wykop.pl/ustawienia/czarne-listy/",)
data: formData,
processData: false,
contentType: false,
error: function(jqXHR, textStatus, errorMessage) {
console.log(errorMessage); // Optional
},
success: function(data) {console.log($item)}
})
});

bonus question - jak tu zrobić normalne wcięcia, wykopie?
  • 14
@epi:

cześć pierwsza:

var myStringArray = new Array("anime", "randomanimeshit");
$.each(myStringArray, function( index, item )
{
document.getElementById('tagInput').value = "$item";
$( "#taginput" ).keyup();
$( "li[data-content='$item']" ).next().click();
$("[id='group-search-button']:eq(1)").click();
});

// PORZUCONA bo klika

czesc druga

var myStringArray = new Array("4konserwy", "anime");
$.each(myStringArray, function( index, item ) {
document.getElementById('tagInput').value = "$item";
$( "#taginput" ).keyup();
$( "li[data-content='$item']" ).delay(100).next().click();
var formData = new FormData(document.getElementById('tagInput').closest('form'));
$.ajax({
type: "POST",
url: "[http://www.wykop.pl/ustawienia/czarne-listy/",](http://www.wykop.pl/ustawienia/czarne-listy/",)
data: formData,
processData: false,
contentType: false,
@bogobojny_trans: generalnie robisz coś bardzo dziwnego ;)

iterujesz po tablicy stringów
dla każdego stringa bierzesz sobie #taginput i ustawiasz jako value string "$item", zamiast stringa z aktualnej iteracji
potem robisz keyup na inpucie, nie wiem po co ;)
następnie robisz click na czymś jeszcze i to po delayu
a potem robisz request ajaxowy
swoją droga, jesteś pewien, że pod tym urlem jest jakies api, które odbierze dane, które wysyłasz?
@epi: tak, "$item" poprawiłem już na item. za coś bardzo dziwnego - mi skuzi, ostatni raz pisałem w js ładnych parę lat temu. KeyUp na inpucie robię bo wykop ustawia sobie do formy jakieś hashe i inne cuda wianki - nie mogę tak po prostu robić posta z tagów które chcę dodać do czarnolisty

a delay był po to, że lista "podpowiedzi", jest ładowana, na moje nieszczęście przez kolejnego ajaxa, właśnie
Cholera, a jednak nie, nie trzeba czekać na te durne podpowiedzi, no to mi trochę upraszcza życie. Poniższe działa jeśli ktoś ma ochotę sobie dodać masowo tagi, dzięki @epi ;) gdybyś nie dociekał po co robię ten keyup to pewnie bym nie sprawdził tego ponownie.

var myStringArray = new Array("4konserwy", "anime");
$.each(myStringArray, function( index, item ) {
document.getElementById('tagInput').value = "#".concat(item);
var formData = new FormData(document.getElementById('tagInput').closest('form'));
$.ajax({
type: "POST",
url: "[http://www.wykop.pl/ustawienia/czarne-listy/",](http://www.wykop.pl/ustawienia/czarne-listy/",)
data: formData,