Escribí código para un formulario de evaluación relacionado con la gestión de calidad. Tengo una parte en la que se configuran varias casillas de verificación para marcar en el código. La base de datos genera dinámicamente todos los nombres, valores e identificaciones.
@foreach ($scoreEvaluations as $scoreEvaluation) <div class="col-sm-2"> <!-- radio --> <div class="form-group"> <div class="form-check"> <input class="form-check-input score" type="checkbox" name="score_evaluation_id-{{ $scoreEvaluation->id }}" value="{{ $scoreEvaluation->marks }}" id="score_evaluation_id-{{ $scoreEvaluation->id }}" onclick="score_check(this)" checked> <label class="form-check-label"> {{ $scoreEvaluation->name }} </label> </div> </div> </div> @endforeachDel código anterior, el formulario se envía cuando envío el formulario, pero solo guarda el valor de las casillas de verificación marcadas. Al mismo tiempo, quiero almacenar los valores de las casillas de verificación marcadas y no marcadas.
Controlador
public function store(QCFeedbackRequest $request, QCFeedback $feedback) { $feedback = $feedback->create($request->all()); $this->addScoreResponse($request, $feedback); Session::flash('success', 'Feedback added successfully!'); return redirect()->route('qc-feedback-audits.index'); } public function addScoreResponse($request, $feedback) { foreach ($request->all() as $key => $value) { $key_arr = explode('-', $key); if ($key_arr[0] == 'score_evaluation_id') { $score_response = new ScoreEvaluationResponse; $score_response->score_evaluation_id = $key_arr[1]; $score_response->qc_feedback_id = $feedback->id; $score_response->checkbox_status = 'Checked'; $score_response->save(); } } } La función store() está agregando el código en la tabla qc_feedbacks , y la otra función es agregar las respuestas de las casillas de verificación en la tabla de score_evaluation_responses (que tiene los campos id, qc_feedback_id (clave externa de qc_feedbacks) y score_e Evaluation_id (otra clave externa para tabla score_evaluaciones).
Si lo entendí bien, desea obtener valores de casilla de verificación marcados y no marcados, lo que significa que desea obtener todos los valores de entrada en el formulario. Entonces, ¿por qué necesitas casillas de verificación en realidad? Se utilizan para filtrar datos, lo que significa que es posible que solo necesite valores marcados o no marcados en el mundo ideal. Si aún desea obtener todos los valores de casilla de verificación por algún motivo, puede usar entradas de casilla de verificación ocultas adicionales como
<input id="score_evaluation_id-{{ $scoreEvaluation->id }}" type="hidden" value="{{ $scoreEvaluation->marks }}" name='score_evaluation_id-{{ $scoreEvaluation->id }}'> <input id="score_evaluation_id-{{ $scoreEvaluation->id }}" type="checkbox" value="{{ $scoreEvaluation->marks }}" name="score_evaluation_id-{{ $scoreEvaluation->id }}">Con esa lógica, obtendrá el valor deseado en el backend, ya sea que la casilla de verificación esté marcada o no.
Pero si desea obtener solo valores no marcados, consulte este problema: casillas de verificación HTML no marcadas POST