Вот форма, которая находится внутри index.php - я пытаюсь программно отправить ее, щелкнув изображение, вложенное в якорь 'a':
<form name="landingForm" id="landingFormId" method="post" action="index.php">
<input type="text" size="250" maxlength="250"
id="artifactName">Enter an artifact name here...
</input>
<a href="javascript:document.landingForm.submit()">
<img src="http://localhost/myProj/bronzeAgeCaveDrawing.jpg"
alt="Submit this form" name="imageFormSubmitter" />
</a>
</form>
Вот мойphp code:
<?php
if(isset( $_POST['imageFormSubmitter']))
{
// this fx just echos a javascript 'alert()'
showAlertBox("The index page form 'landingForm' was just submitted.");
}
else
{
var_dump($_GET);
var_dump($_POST);
}
?>
Когда я набираю что-то в поле для редактирования на форме, затем нажимаю на изображение «bronzeAgeCaveDrawing.jpg», дамп массивов GET и POST говорит:
array
Empty
array
Empty
И в этом отношении я даже не уверен, что приведенный выше код PHP вообще вызывается для случая
<a href="javascript:document.landingForm.submit()">
, потому что приведенный выше код php выполняется независимо от того, отправляет ли форма - GETи POST-дамп происходят, когда index.php загружается из-за вышеприведенного предложения 'else', которое я добавил, потому что не похоже, что это предложение if.
Если приведенный выше код php действительно выполняетсяс помощью вызова submit () GET и POST все еще являются пустыми массивами.
Я изучил примеры использования якоря 'a' с изображением в сочетании с вызовом submit () в нескольких сообщениях на SO иЯ не вижу причин, почему PМассив OST или GET пуст.И из-за моей формы method = "post" я на 100% ожидаю отправки () для отправки формы, а не отправки с GET.
Я смотрел на это некоторое время - я что-то упустил?
ОБНОВЛЕНИЕ: Вот действующий код - спасибо за помощь, ребята!
<form name="landingForm" id="landingFormId" method="post" action="index.php">
<input type="text" size="250" maxlength="250" name="itemName_name"
id="artifactName">Enter an artifact name here...
</input>
<a href="javascript: document.landingForm.submit()">
<img src="http://localhost/myProj/bronzeAgeCaveDrawing.jpg"
alt="Submit this form" name="imageFormSubmitter" />
</a>
</form>
if(isset( $_POST['itemName_name']))
{
showAlertBox("The index page form 'landingForm' was just submitted.");
var_dump($_POST);
}
Вывод дампа массива POST NOW показывает:
array
'itemName_name' => string 'fffffffffff' (length=11)
TAKEAWAYS:
1) the syntax "document.landingForm.submit()" is 100% fine.
2) the 'name' attribute of my <img> tag does NOT get posted (not sure why,
but it's not the worst thing happening for me right now so I'll deal with it)
3) giving the text <input> field a 'name' attribute made its way fine to the POST array.
4) the call to submit() does in fact pay attention to the method="post" in my
form declaration.
Я бегу с этим, спасибо всем.Для меня есть более одного одинаково приемлемого ответа, поэтому мне +1 придется выбрать один.Еще раз спасибо.