предаване на променливи към php с ajax load()

Намерих някои близки отговори за това, но нито един от тях не работи в моя случай. Аз имам:

  1. Входен етикет:

      <input name="title" id="title">
    
  2. Аякс:

    <script language="javascript">
    function example_ajax_request() {
    
        $('#example-placeholder').html('<p><img src="/img/ajax-loader.gif" /></p>');
    
        setTimeout('example_ajax_request_go()', 0);
    
    }
    
    function example_ajax_request_go() {
    
        $j(document).ready(function () {
    
            var inputField = $j('#inputText').val();
    
            $j(".button").click(function () {
    
                $('#example-placeholder').load('preview.php?title=' + title + ' .aClass');
    
            }
       </script>
    
  3. Бутон за извикване на функцията:

    <input type="button" onclick="example_ajax_request()" value="Preview" />
    

Опитвам се да предам променлива „title“ от тага за въвеждане чрез ajax към „preview.php“. Този код по-горе има грешки и не се изпълнява, можете ли да предложите правилен? Благодаря!


person user1567497    schedule 01.08.2012    source източник


Отговори (2)


Не сте въвели точни съобщения за грешка (от конзолата на вашия браузър, моля, поставете ги и актуализирайте въпроса си). Просто давам някои предложения/подобрения:

  1. Всеки път, когато предавате GET параметри, винаги URIEncode стойността (xyz и value в url?abc=xyz&blah=value). В javascript има извикване на функция EncodeURIComponent(..). Бихте го използвали като:

    'preview.php?title=' +  EncodeURIComponent(title +' .aClass')
    
  2. Възможна правописна грешка, имате интервал в URL адреса преди + ' .aClass'. Ако имате нужда от такъв, изрично го заменете с + или %20.

person UltraInstinct    schedule 01.08.2012

Намерих начин. Ето го:

<script type="text/javascript">
function example_ajax_request() {
 $('#example-placeholder').html('<p><img src="img/ajax-loader.gif" /></p>');
 $('#example-placeholder').load("preview.php?title="+$('#title').val());
}
</script>

Благодаря!

person user1567497    schedule 01.08.2012