2010-08-25 5 views
0

Вот ситуация, с которой я столкнулся, создавая форму на стороне клиента и используя PHP для обработки. Вот некоторые соображенияJS/PHP: Кто несет ответственность за создание контента?

  1. PHP-скрипт генерирует форму и отправляет ее на клиентскую сторону. Это связано с проблемами интернационализации
  2. Клиентская сторона использует JavaScript для отправки формы; идентификатор формы жестко закодирован внутри JavaScript, поскольку он генерируется PHP. Это означает, что каждый раз, когда PHP-код обновляется, JS должен измениться.

Вопрос в том, кто должен зависеть от кого? Если JS генерирует форму вместо этого, чтобы PHP-скрипт должен был знать имена элементов формы? ИЛИ должно быть наоборот?

+2

Мне оба соображения выглядят ошибочно ... необычно. Я никогда не видел в своей жизни случая, когда ID генерируется на основе ** кода **, а не некоторых ** данных **. И я не вижу проблем при создании формы с использованием JS. Единственное, что я могу сказать наверняка: JS генерируется PHP, а также целая HTML-страница. Таким образом, JS зависит от PHP, а не наоборот –

+0

Идентификатор формы не является идентификатором местоположения или идентификатором продукта (извините, что не уточнил ранее). Это идентификатор для идентификации элемента DOM формы ...

Extrakun

ответ

0

PHP должен сгенерировать форму + скрытое поле с идентификатором формы. после этого javascript представляет форму.

Вот как бы я это сделать ...

0

Если форма генерируется из PHP скрипта, то это должно быть легко (как это было предложено @xXx) иметь этот сценарий добавить соответствующий идентификатор в форме для последующей обработки. Является ли этот идентификатор добавленным как атрибут «id» для элемента «form» или как скрытое поле «input», зависит от ряда факторов.

Javascript, а не необходимость жестко закодированного значения внутри себя, должен быть настроен на (если необходимо) найти идентификатор в форме, как установлено PHP-скриптом выше.

Конечно, этот совет немного воздушный-фея, поскольку я понятия не имею, как ваше решение было разработано.

Но для некоторых наглядных пособий:

В РНР скрипт создания формы

<?php 
//After the Form open tag has been echo'd 
//Assuming $formID is the Form's ID 
echo '<input type="hidden" name="formID" value="'+$formID+'">'; 
?> 

Что бы создать что-то вроде

<form ... > 
    <input type="hidden" name="formID" value="1234"> 
    ... 
</form> 

, а затем Javascript должен быть в состоянии сделать что-то вроде

//Assuming Javascript variable "targetForm" is pointing at the above form object 
formID = targetForm.formID.value; 
Смежные вопросы