JS() 経由で処理するために、フォーム データを PHP スクリプトに渡していますjQuery.ajax()
。
問題は、PHP内の個々のフォームコントロール値にアクセスする方法がわかりません(例$_POST['zipcode']
)。
$_POST['form']
代わりに、1 つの長い文字列 (例: ) として表されるフォーム全体である を使用してのみ、データにアクセスできますstring(89)"color=red&color=blue&zipcode=12345..."
。
HTMLフォームからJS経由で渡されたPHPスクリプト内のフォームデータの個々の値にアクセスするにはどうすればよいですか?
index.php(フォーム)
<form id="myform">
<select name="color" id="color">
<option value="Red">Red</option>
<option value="Green">Green</option>
<option value="Blue">Blue</option>
</select>
<input type="text" id="zipcode" name="zipcode" />
<input type="submit" id="submit" name="submit" value="Submit" />
</form>
index.php(JS)
$('#myform').on('submit', function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
dataType: 'html',
url : 'PHPscript.php',
data: {form : $('#myform').serialize()}
}).done(function(data) {
var myJSONresult = data;
alert(myJSONresult);
});
});
PHPスクリプト
<?php
if(isset($_POST["form"])){
$form = $_POST["form"];
$myzipcode = $_POST['zipcode']; // won't work; will be null or empty
echo json_encode($form);
}
?>
編集: 郵便番号フィールド:
$("#zipcode").focus(function(){
if(this.value == "zipcode"){
$(this).val("");
}
}).blur(function(){
if(this.value == ""){
$(this).val("zipcode");
}
});