2010-09-16 5 views
0

У меня есть форма, которая позволяет пользователю выполнить поиск символа запаса. Данные передаются на другой URL через PHP cURL. Это прекрасно, мы делаем это несколько других мест на сайте. Мне нужно урезать возвращаемые данные (он возвращает целую страницу) и отображать только данные между {STARTKINETICK} {ENDKINETICK} .jQuery AJAX submit Help

Мне нужно, чтобы оно отображалось в результатах div #. Пожалуйста помоги! это должно быть так просто!

$(document).click(function() { 
$("#SymbolSearchForm").submit(function() { 
    $.ajax({ 
    url: "PHP/Kinetick_Symbol_Search.php", 
    type: "post", 
    dataType: "HTML", 
     success: function(html){ 
     html = $.trim(html); 
     html = html.match(/\{STARTKINETICK\}(.*)\{ENDKINETICK\}/)[1]; 
     var end = "{ENDKINETICK}"; 
     $("#return").append(html.substring(html.indexOf("{STARTKINETICK}"), html.indexOf(end) + end.length)); 
    } 

    }); 
}); 

});

ответ

1

Вы можете использовать html.indexOf("{STARTKINETICK}") и html.indexOf("{ENDKINETICK}"), чтобы получить начальную и конечную точку, а затем использовать html.substring. Не забудьте добавить длину «{STARTKINETICK}» к начальной точке.

EDIT

var start = "{STARTKINETICK}"; 
html = html.substring(html.indexOf(start) + start.length, html.indexOf("{ENDKINETICK}"); 
+0

пример пожалуйста ... не уверен, что я следую. thx –

+0

см. edit ....... – RememberME

+0

Вы видите что-то не так с отредактированным кодом выше? это не похоже на мою форму, у нее нет функции ajax. –

0

Regex, что вам нужно:

"foo{STARTKINETICK}myText{ENDKINETICK}bar".match(/\{STARTKINETICK\}(.*)\{ENDKINETICK\}/)[1]; // returns myText 

Всего код:

success: function(html){ 
    html = $.trim(html); 
    html = html.match(/\{STARTKINETICK\}(.*)\{ENDKINETICK\}/)[1]; 
    $("#return").append(html); 
} 
+0

вы можете взглянуть на мой код, не оставаясь на странице, скорее перейдя к действию –

+0

Я не понимаю ... Я даю вам ответ, вы положили его в свой код, и я не даю никаких отзывов? – Topera

+0

это не сработало, я прошу прощения за то, что вы не получили «баллы» или что-то еще, если вам нравится, я сделаю тебе значок –

0

Немного не по теме, но вы знаете, что JQuery имеет приятный method - load(), который загружает html асинхронно. Кроме того, вы можете передать селектор элементов, который должен быть извлечен из результата. Если вы можете контролировать на стороне сервера, вы можете обернуть {STARTKINETICK} и {} ENDKINETICK в <div id="to_be_extracted"></div> и вызвать

$('#return').load('PHP/Kinetick_Symbol_Search.php #to_be_extracted');

Я использую эту технику здесь и там, и найти его очень полезным.

+0

это довольно пятно. так что вы можете отправить форму через PHP/cURL без какого-либо материала ajax submit? единственная проблема заключается в том, что возвращаемые данные не имеют идентификатора. –

+0

Фактически - речь идет о AJAX, просто о другом «умном» методе. – dmitko