양식의 일부 항목을 products
이라는 내 표에 삽입하려고합니다. 양식은 다음과 같습니다정의되지 않은 색인 오류 메시지 PHP
당신은 내가 더 많은 공급 업체를 추가하는 링크를 언급 볼 수 있듯이 : + 단순히 폼에 새 행을 추가을. 그리고 그 뒤에 스크립트는 이것이다 :
이<script>
$("#addbtn").click(function(){
var next = parseInt($('#counter').val()) + 1;
$("#group").append("<table class='table table-hover'><tr><th style='padding-left:10px'>Name of supplier ("+next+")</th><th>Terms of sending</th><th>Guarantee</th><th>Price</th><th>Colors (use , for separation)</th></tr><tr><td style='padding-left:10px'><input name='supplier_name_("+next+")' type='text'></input></td><td><input name='supplier_sending_("+next+")' type='text'></input></td><td><input name='supplier_guarantee_("+next+")' type='text'></input></td><td><input name='supplier_price_("+next+")' type='text'></input></td><td><input name='supplier_colors_("+next+")' type='text'></input></td></tr></table>");
$('#counter').val(next);
});
</script>
이제 어떻게 내가 원하는 것은 사용자가 배열 테이블에 양식에 입력 한 모든 값을 삽입하는 것입니다.
// supplier info
$supplier_name_1 = $_POST['supplier_name_1'];
$supplier_sending_1 = $_POST['supplier_sending_1'];
$supplier_guarantee_1 = $_POST['supplier_guarantee_1'];
$supplier_price_1 = $_POST['supplier_price_1'];
$supplier_colors_1 = $_POST['supplier_colors_1'];
$supplier_info_1 = array($supplier_name_1, $supplier_sending_1, $supplier_guarantee_1, $supplier_price_1, $supplier_colors_1);
$proSupply_1 = json_encode($supplier_info_1);
for($p=2;$p<=5;$p++){
$supplier_name_ . $p = isset($_POST['supplier_name_'.$p.'']);
$supplier_sending_ . $p = isset($_POST['supplier_sending_'.$p.'']);
$supplier_guarantee_ . $p = isset($_POST['supplier_guarantee_'.$p.'']);
$supplier_price_ . $p = isset($_POST['supplier_price_'.$p.'']);
$supplier_colors_ . $p = isset($_POST['supplier_colors_'.$p.'']);
$supplier_info_ . $p = array($supplier_name_ . $p, $supplier_sending_ . $p, $supplier_guarantee_ . $p, $supplier_price_ . $p, $supplier_colors_ . $p);
$proSupply_ . $p = json_encode($supplier_info_ . $p);
$supplier_info_ . $p = array($supplier_name_ . $p, $supplier_sending_ . $p, $supplier_guarantee_ . $p, $supplier_price_ . $p, $supplier_colors_ . $p);
$proSupply_ . $p = json_encode($supplier_info_ . $p);
if(!empty($supplier_name_ . $p)&&(!empty($supplier_sending_ . $p))&&(!empty($supplier_guarantee_ . $p))&&(!empty($supplier_price_ . $p))&&(!empty($supplier_colors_ . $p))){
if($p == 2){
$sql = "ALTER TABLE products ADD '.$supplier_name_ . $p.' varchar(500) AFTER supplier_info_1";
}else if($p > 2){
$i = $p-1;
$sql = "ALTER TABLE products ADD '.$supplier_name_ . $p.' varchar(500) AFTER supplier_info_".$i;
}
if ($con->query($sql) === TRUE){
$insert_suppliers = "
INSERT INTO `products` (`supplier_info_" . $p . "`)
VALUES ('$proSupply_" . $p . "')
";
$run_suppliers = mysqli_query($con,$insert_suppliers);
if(!$run_product){
error_reporting(E_ALL);
die(mysqli_error($con));
}
}else{
error_reporting(E_ALL);
die(mysqli_error($con));
}
}
}
어떤이 코드가하는 일은이 기본적으로 FIRST 공급 업체에 대한 사용자가 + 기호를 클릭 한 경우 그 다음, FOR LOOP가 시작 모든 정보를 얻을 수 있다는 것입니다 : 그래서하기 위해,이 코딩 모든 필요한 정보를 얻습니다.
그런 다음 정의 된 변수가 비어 있지 않으면 해당 테이블에 새 FIELD를 추가합니다. 그런 다음 해당 사용자 정의 필드에 배열을 삽입하기 시작합니다.
그래서보기 좋고 깨끗하지만 많은 오류를 반환합니다!
정의되지 않은 인덱스 : 줄에 supplier_name_2 11
그리고 선 (11)가 여기에 표시됩니다 :
$supplier_name_ . $p = $_POST['supplier_name_'.$p.''];
다른 모든 오류이 하나 (정의되지 않은 인덱스처럼 & 정의되지 않은 제 1 회 오류는 이것이다 For 루프에서 지정한 모든 입력 이름의 변수).
당신이 이것에 대해 조금이라도 궁금한 점이 있으면 알려주세요. 정말 고마워요. 감사합니다 :)
UPDATE :
:["supplier_name_1"]=> string(10) "supplier 1" ["supplier_sending_1"]=> string(7) "terms 1" ["supplier_guarantee_1"]=> string(11) "guarantee 1" ["supplier_price_1"]=> string(7) "price 1" ["supplier_colors_1"]=> string(8) "colors 1" ["supplier_name_2"]=> string(10) "supplier 2" ["supplier_sending_2"]=> string(7) "terms 2" ["supplier_guarantee_2"]=> string(11) "guarantee 2" ["supplier_price_2"]=> string(7) "price 2" ["supplier_colors_2"]=> string(8) "colors 2" ["supplier_name_3"]=> string(10) "supplier 3" ["supplier_sending_3"]=> string(7) "terms 3" ["supplier_guarantee_3"]=> string(11) "guarantee 3" ["supplier_price_3"]=> string(7) "price 3" ["supplier_colors_3"]=> string(8) "colors 3" ["counter"]=> string(1) "3"
그리고 지금 얻을 오류 다음과 같습니다
내가 넣어 위해서 var_dump ($ _ POST),이 얻을
정의되지 않은 변수 : supplier_name_
정의되지 않은 변수 : supplier_sending_
정의되지 않은 변수 : supplier_guarantee_
정의되지 않은 변수 :
정의되지 않은 변수를 supplier_price_ : supplier_colors_
등
$ supplier_name_을 (를) 사용할 수 있습니다. $ p = isset ($ _ POST [ '공급자 _ 이름'. $ p. '']); – Deep
PHP에서 정의되지 않은 오류가 발생하는 곳에서 isset()을 사용합니다. – Deep
undefined가 아닌 경우 값을 사용하십시오. – Deep