2012-06-04 3 views
0

Скажем, у меня есть довольно общий JQuery строка, которая просит меня, чтобы переименовать элемент, а затем говорит мне, что я вошел:Submit с JQuery Подскажите

$(function() { 
$("#rename").click(function() { 
    jPrompt('Please Enter a New Name:', 'Enter new name...', 'Rename Prompt', function (r) { 
     if (r) { 
      alert('You entered ' + r); 
     } 
    }); 
}); 
}); 

Но элемент, который я хочу переименовать хранится на базы данных на сервере, что означает, что мне нужно запустить серверный скрипт, чтобы переименовать этот элемент. Я предполагаю, что это означает, что мне нужно использовать submit, как и в форме. Я нашел некоторую информацию о функции .submit() jQuery here, но я не совсем понимаю, как это работает. Если кто-нибудь может сообщить мне, как я сделал бы отправку, а затем запустить сценарий на стороне сервера, который будет действительно оценен.

ответ

1
$(function() { 
    $("#rename").click(function (e) { 
     e.preventDefault(); 
     jPrompt('Please Enter a New Name:', 'Enter new name...', 'Rename Prompt', function (r) { 
      if (r) { 
       $('input[name="NewName"]').val(r.Name); 
       $.post('@Url.Action("Edit", "TheController")', $('#hiddenform').serialize(), function(response) { 
        // response = ActionResult 
       }); 
      } 
     }); 
    }); 
}); 
  1. Используйте Url.Action, чтобы получить правильный URI
  2. Использование предотвращения по умолчанию блокировать действие по умолчанию
  3. Возвращение своего рода JSON от действия MVC3, чтобы указать успех/провал.
  4. Место скрытый <form> где-то и заполнить его с информацией, чтобы получить возможность отправлять
+0

Вау, это было быстро ... Огромное спасибо, я совсем забыл о скрытых формах. – RedHack

0

Вы хотите использовать AJAX для отправки запроса с JavaScript на серверный скрипт. Посмотрите на jQuery API documentation on AJAX для получения дополнительной информации.

Следующий обратный вызов jPrompt выдаст HTTP-запрос POST серверному сценарию, передав id и newName аргументы вместе с запросом. В PHP вы должны получить их с помощью $_POST['id'] и $_POST['newName'].

function (r) { 
    if (r) { 
     $.post("rename.php", { 
      data: { 
       id: somethingToIdentifyTheElement, 
       newName: r 
      }, 
      success: function(response) { 
       // Successfully renamed the element! 
       // If your server-side script returned something interesting, 
       // you can find it in the response argument 
      } 
     }); 
    } 
} 
0

Если кто-то может позволить мне знать, как я сделал бы представить, а затем запустить серверный скрипт, который будет действительно оценили.

Для этого вам необходимо использовать функцию $.ajax(), чтобы вызвать функцию serveride.

$.ajax({ 
    url: 'YourController\yourAction', 
    type:'post' 
    success: function(data) { 
    $('.result').html(data); 
    alert('Load was performed.'); 
    } 
});